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
* Add `as<JsonString>()` and `is<JsonString>()`
* Add safe bool idiom in `JsonString`
* Remove `DeserializationError == bool` and `DeserializationError != bool`
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) {
// DeserializationError on left-hand side
CHECK(error == expected);
CHECK(error != !expected);
CHECK(!error == !expected);
CHECK(bool(error) == expected);
CHECK(bool(error) != !expected);
CHECK(!bool(error) == !expected);
// DeserializationError on right-hand side
CHECK(expected == error);
CHECK(!expected != error);
CHECK(!expected == !error);
CHECK(expected == bool(error));
CHECK(!expected != bool(error));
CHECK(!expected == !bool(error));
}
#define TEST_STRINGIFICATION(symbol) \
@ -70,34 +70,24 @@ TEST_CASE("DeserializationError") {
}
}
SECTION("Comparisons") {
SECTION("Use in a condition") {
DeserializationError invalidInput(DeserializationError::InvalidInput);
DeserializationError ok(DeserializationError::Ok);
SECTION("DeserializationError == bool") {
REQUIRE(invalidInput == true);
REQUIRE(ok == false);
SECTION("if (!err)") {
if (!invalidInput)
FAIL();
}
SECTION("bool == DeserializationError") {
REQUIRE(true == invalidInput);
REQUIRE(false == ok);
SECTION("if (err)") {
if (ok)
FAIL();
}
}
SECTION("DeserializationError != bool") {
REQUIRE(invalidInput != false);
REQUIRE(ok != true);
}
SECTION("bool != DeserializationError") {
REQUIRE(false != invalidInput);
REQUIRE(true != ok);
}
SECTION("Negations") {
REQUIRE(!invalidInput == false);
REQUIRE(!ok == true);
}
SECTION("Comparisons") {
DeserializationError invalidInput(DeserializationError::InvalidInput);
DeserializationError ok(DeserializationError::Ok);
SECTION("DeserializationError == Code") {
REQUIRE(invalidInput == DeserializationError::InvalidInput);

View File

@ -57,18 +57,6 @@ class DeserializationError : public SafeBoolIdom<DeserializationError> {
operator bool_type() const {
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
Code code() const {