Remove DeserializationError == bool and DeserializationError != bool

This commit is contained in:
Benoit Blanchon
2021-10-23 16:12:58 +02:00
parent a7873389c6
commit 943a902a0b
3 changed files with 18 additions and 39 deletions

View File

@ -10,6 +10,7 @@ HEAD
* Change the default of `ARDUINOJSON_USE_LONG_LONG` to `1` on 32-bit platforms * Change the default of `ARDUINOJSON_USE_LONG_LONG` to `1` on 32-bit platforms
* Add `as<JsonString>()` and `is<JsonString>()` * Add `as<JsonString>()` and `is<JsonString>()`
* Add safe bool idiom in `JsonString` * Add safe bool idiom in `JsonString`
* Remove `DeserializationError == bool` and `DeserializationError != bool`
v6.18.5 (2021-09-28) v6.18.5 (2021-09-28)
------- -------

View File

@ -11,14 +11,14 @@ void testStringification(DeserializationError error, std::string expected) {
void testBoolification(DeserializationError error, bool expected) { void testBoolification(DeserializationError error, bool expected) {
// DeserializationError on left-hand side // DeserializationError on left-hand side
CHECK(error == expected); CHECK(bool(error) == expected);
CHECK(error != !expected); CHECK(bool(error) != !expected);
CHECK(!error == !expected); CHECK(!bool(error) == !expected);
// DeserializationError on right-hand side // DeserializationError on right-hand side
CHECK(expected == error); CHECK(expected == bool(error));
CHECK(!expected != error); CHECK(!expected != bool(error));
CHECK(!expected == !error); CHECK(!expected == !bool(error));
} }
#define TEST_STRINGIFICATION(symbol) \ #define TEST_STRINGIFICATION(symbol) \
@ -70,34 +70,24 @@ TEST_CASE("DeserializationError") {
} }
} }
SECTION("Comparisons") { SECTION("Use in a condition") {
DeserializationError invalidInput(DeserializationError::InvalidInput); DeserializationError invalidInput(DeserializationError::InvalidInput);
DeserializationError ok(DeserializationError::Ok); DeserializationError ok(DeserializationError::Ok);
SECTION("DeserializationError == bool") { SECTION("if (!err)") {
REQUIRE(invalidInput == true); if (!invalidInput)
REQUIRE(ok == false); FAIL();
} }
SECTION("bool == DeserializationError") { SECTION("if (err)") {
REQUIRE(true == invalidInput); if (ok)
REQUIRE(false == ok); FAIL();
} }
}
SECTION("DeserializationError != bool") { SECTION("Comparisons") {
REQUIRE(invalidInput != false); DeserializationError invalidInput(DeserializationError::InvalidInput);
REQUIRE(ok != true); DeserializationError ok(DeserializationError::Ok);
}
SECTION("bool != DeserializationError") {
REQUIRE(false != invalidInput);
REQUIRE(true != ok);
}
SECTION("Negations") {
REQUIRE(!invalidInput == false);
REQUIRE(!ok == true);
}
SECTION("DeserializationError == Code") { SECTION("DeserializationError == Code") {
REQUIRE(invalidInput == DeserializationError::InvalidInput); REQUIRE(invalidInput == DeserializationError::InvalidInput);

View File

@ -57,18 +57,6 @@ class DeserializationError : public SafeBoolIdom<DeserializationError> {
operator bool_type() const { operator bool_type() const {
return _code != Ok ? safe_true() : safe_false(); return _code != Ok ? safe_true() : safe_false();
} }
friend bool operator==(bool value, const DeserializationError& err) {
return static_cast<bool>(err) == value;
}
friend bool operator==(const DeserializationError& err, bool value) {
return static_cast<bool>(err) == value;
}
friend bool operator!=(bool value, const DeserializationError& err) {
return static_cast<bool>(err) != value;
}
friend bool operator!=(const DeserializationError& err, bool value) {
return static_cast<bool>(err) != value;
}
// Returns internal enum, useful for switch statement // Returns internal enum, useful for switch statement
Code code() const { Code code() const {