Commit 44d60f8d authored by Ferry Huberts's avatar Ferry Huberts

All: fix warnings when compiling with -Wswitch-enum

Signed-off-by: default avatarFerry Huberts <ferry.huberts@pelagic.nl>
parent 910fabf8
...@@ -58,6 +58,13 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) ...@@ -58,6 +58,13 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
break; break;
} }
case value_t::null:
case value_t::object:
case value_t::array:
case value_t::string:
case value_t::boolean:
case value_t::binary:
case value_t::discarded:
default: default:
JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j)); JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j));
} }
...@@ -343,6 +350,12 @@ void from_json(const BasicJsonType& j, ArithmeticType& val) ...@@ -343,6 +350,12 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
break; break;
} }
case value_t::null:
case value_t::object:
case value_t::array:
case value_t::string:
case value_t::binary:
case value_t::discarded:
default: default:
JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j)); JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()), j));
} }
......
...@@ -334,6 +334,13 @@ class parser ...@@ -334,6 +334,13 @@ class parser
parse_error::create(101, m_lexer.get_position(), exception_message(token_type::uninitialized, "value"), BasicJsonType())); parse_error::create(101, m_lexer.get_position(), exception_message(token_type::uninitialized, "value"), BasicJsonType()));
} }
case token_type::uninitialized:
case token_type::end_array:
case token_type::end_object:
case token_type::name_separator:
case token_type::value_separator:
case token_type::end_of_input:
case token_type::literal_or_value:
default: // the last token was unexpected default: // the last token was unexpected
{ {
return sax->parse_error(m_lexer.get_position(), return sax->parse_error(m_lexer.get_position(),
......
...@@ -104,6 +104,14 @@ class iter_impl ...@@ -104,6 +104,14 @@ class iter_impl
break; break;
} }
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
m_it.primitive_iterator = primitive_iterator_t(); m_it.primitive_iterator = primitive_iterator_t();
...@@ -200,6 +208,13 @@ class iter_impl ...@@ -200,6 +208,13 @@ class iter_impl
break; break;
} }
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
m_it.primitive_iterator.set_begin(); m_it.primitive_iterator.set_begin();
...@@ -230,6 +245,14 @@ class iter_impl ...@@ -230,6 +245,14 @@ class iter_impl
break; break;
} }
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
m_it.primitive_iterator.set_end(); m_it.primitive_iterator.set_end();
...@@ -264,6 +287,13 @@ class iter_impl ...@@ -264,6 +287,13 @@ class iter_impl
case value_t::null: case value_t::null:
JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object)); JSON_THROW(invalid_iterator::create(214, "cannot get value", *m_object));
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin()))
...@@ -298,6 +328,14 @@ class iter_impl ...@@ -298,6 +328,14 @@ class iter_impl
return &*m_it.array_iterator; return &*m_it.array_iterator;
} }
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin())) if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin()))
...@@ -343,6 +381,14 @@ class iter_impl ...@@ -343,6 +381,14 @@ class iter_impl
break; break;
} }
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
++m_it.primitive_iterator; ++m_it.primitive_iterator;
...@@ -386,6 +432,13 @@ class iter_impl ...@@ -386,6 +432,13 @@ class iter_impl
break; break;
} }
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
--m_it.primitive_iterator; --m_it.primitive_iterator;
...@@ -419,6 +472,14 @@ class iter_impl ...@@ -419,6 +472,14 @@ class iter_impl
case value_t::array: case value_t::array:
return (m_it.array_iterator == other.m_it.array_iterator); return (m_it.array_iterator == other.m_it.array_iterator);
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
return (m_it.primitive_iterator == other.m_it.primitive_iterator); return (m_it.primitive_iterator == other.m_it.primitive_iterator);
} }
......
...@@ -97,6 +97,14 @@ template<typename IteratorType> class iteration_proxy_value ...@@ -97,6 +97,14 @@ template<typename IteratorType> class iteration_proxy_value
return anchor.key(); return anchor.key();
// use an empty key for all primitive types // use an empty key for all primitive types
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
return empty_str; return empty_str;
} }
......
...@@ -555,6 +555,14 @@ class json_pointer ...@@ -555,6 +555,14 @@ class json_pointer
break; break;
} }
case detail::value_t::null:
case detail::value_t::string:
case detail::value_t::boolean:
case detail::value_t::number_integer:
case detail::value_t::number_unsigned:
case detail::value_t::number_float:
case detail::value_t::binary:
case detail::value_t::discarded:
default: default:
JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr)); JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'", *ptr));
} }
...@@ -714,6 +722,14 @@ class json_pointer ...@@ -714,6 +722,14 @@ class json_pointer
break; break;
} }
case detail::value_t::null:
case detail::value_t::string:
case detail::value_t::boolean:
case detail::value_t::number_integer:
case detail::value_t::number_unsigned:
case detail::value_t::number_float:
case detail::value_t::binary:
case detail::value_t::discarded:
default: default:
{ {
// we do not expect primitive values if there is still a // we do not expect primitive values if there is still a
......
...@@ -1059,6 +1059,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -1059,6 +1059,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
break; break;
} }
case value_t::discarded:
default: default:
{ {
object = nullptr; // silence warning, see #821 object = nullptr; // silence warning, see #821
...@@ -1216,6 +1217,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -1216,6 +1217,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
break; break;
} }
case value_t::null:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::discarded:
default: default:
{ {
break; break;
...@@ -2206,6 +2213,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -2206,6 +2213,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
break; break;
} }
case value_t::null:
case value_t::discarded:
default: default:
break; break;
} }
...@@ -4230,6 +4239,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -4230,6 +4239,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
break; break;
} }
case value_t::null:
case value_t::discarded:
default: default:
JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this)); JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()), *this));
} }
...@@ -5174,6 +5185,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -5174,6 +5185,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
return m_value.object->size(); return m_value.object->size();
} }
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
// all other types have size 1 // all other types have size 1
...@@ -5239,6 +5257,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -5239,6 +5257,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
return m_value.object->max_size(); return m_value.object->max_size();
} }
case value_t::null:
case value_t::string:
case value_t::boolean:
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
case value_t::binary:
case value_t::discarded:
default: default:
{ {
// all other types have max_size() == size() // all other types have max_size() == size()
...@@ -7106,6 +7132,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ...@@ -7106,6 +7132,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
return "binary"; return "binary";
case value_t::discarded: case value_t::discarded:
return "discarded"; return "discarded";
case value_t::number_integer:
case value_t::number_unsigned:
case value_t::number_float:
default: default:
return "number"; return "number";
} }
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment