forked from bblanchon/ArduinoJson
Remove DeserializationError == bool
and DeserializationError != bool
This commit is contained in:
@ -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)
|
||||
-------
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user