diff options
author | eldritch horrors <pennae@lix.systems> | 2024-07-22 17:15:57 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-07-22 16:26:55 +0000 |
commit | c74eb81356ef0e202713111d621434e46edc27ea (patch) | |
tree | a292f39326e0da00685d8d7071789dcd82261187 /src/libexpr/json-to-value.cc | |
parent | 0463cf2aefafcbf3762ffdfa6df3f1eb8fa21bfd (diff) |
enable -Werror=suggest-override
*accidentally* overriding a function is almost guaranteed to be an
error. overriding a function without labeling it as such is merely
bad style, but bad style that makes the code harder to understand.
Change-Id: Ic0594f3d1604ab6b3c1a75cb5facc246effe45f0
Diffstat (limited to 'src/libexpr/json-to-value.cc')
-rw-r--r-- | src/libexpr/json-to-value.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/libexpr/json-to-value.cc b/src/libexpr/json-to-value.cc index b69216a48..2309b6c97 100644 --- a/src/libexpr/json-to-value.cc +++ b/src/libexpr/json-to-value.cc @@ -82,28 +82,28 @@ class JSONSax : nlohmann::json_sax<json> { public: JSONSax(EvalState & state, Value & v) : state(state), rs(new JSONState(&v)) {}; - bool null() + bool null() override { rs->value(state).mkNull(); rs->add(); return true; } - bool boolean(bool val) + bool boolean(bool val) override { rs->value(state).mkBool(val); rs->add(); return true; } - bool number_integer(number_integer_t val) + bool number_integer(number_integer_t val) override { rs->value(state).mkInt(val); rs->add(); return true; } - bool number_unsigned(number_unsigned_t val_) + bool number_unsigned(number_unsigned_t val_) override { if (val_ > std::numeric_limits<NixInt::Inner>::max()) { throw Error("unsigned json number %1% outside of Nix integer range", val_); @@ -114,14 +114,14 @@ public: return true; } - bool number_float(number_float_t val, const string_t & s) + bool number_float(number_float_t val, const string_t & s) override { rs->value(state).mkFloat(val); rs->add(); return true; } - bool string(string_t & val) + bool string(string_t & val) override { rs->value(state).mkString(val); rs->add(); @@ -129,7 +129,7 @@ public: } #if NLOHMANN_JSON_VERSION_MAJOR >= 3 && NLOHMANN_JSON_VERSION_MINOR >= 8 - bool binary(binary_t&) + bool binary(binary_t&) override { // This function ought to be unreachable assert(false); @@ -137,35 +137,37 @@ public: } #endif - bool start_object(std::size_t len) + bool start_object(std::size_t len) override { rs = std::make_unique<JSONObjectState>(std::move(rs)); return true; } - bool key(string_t & name) + bool key(string_t & name) override { dynamic_cast<JSONObjectState*>(rs.get())->key(name, state); return true; } - bool end_object() { + bool end_object() override { rs = rs->resolve(state); rs->add(); return true; } - bool end_array() { + bool end_array() override { return end_object(); } - bool start_array(size_t len) { + bool start_array(size_t len) override { rs = std::make_unique<JSONListState>(std::move(rs), len != std::numeric_limits<size_t>::max() ? len : 128); return true; } - bool parse_error(std::size_t, const std::string&, const nlohmann::detail::exception& ex) { + bool + parse_error(std::size_t, const std::string &, const nlohmann::detail::exception & ex) override + { throw JSONParseError("%s", ex.what()); } }; |