mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-15 11:36:00 -05:00
Merge bitcoin/bitcoin#25736: univalue: Remove unused and confusing set*() return value
fa7bef2e80
univalue: Remove unused and confusing set*() return value (MacroFake) Pull request description: The value is: * currently unused, and useless without `[[nodiscard]]` * confusing, because it is always `true`, unless a num-string is set Instead of adding `[[nodiscard]]`, throw when setting is not possible. ACKs for top commit: shaavan: ACKfa7bef2e80
aureleoules: ACKfa7bef2e80
. Tree-SHA512: 0d74f96f34cb93b66019ab75e12334c964630cc83434f22e58cc7a4fff2ee96a5767e42ab37f08acb67aeacba6811b09c75f1edc68d5e903ccfc59b1c82de891
This commit is contained in:
commit
816ca01650
4 changed files with 47 additions and 55 deletions
|
@ -181,10 +181,10 @@ BOOST_AUTO_TEST_CASE(rpc_format_monetary_values)
|
||||||
BOOST_CHECK_EQUAL(ValueFromAmount(std::numeric_limits<CAmount>::min()).write(), "-92233720368.54775808");
|
BOOST_CHECK_EQUAL(ValueFromAmount(std::numeric_limits<CAmount>::min()).write(), "-92233720368.54775808");
|
||||||
}
|
}
|
||||||
|
|
||||||
static UniValue ValueFromString(const std::string &str)
|
static UniValue ValueFromString(const std::string& str) noexcept
|
||||||
{
|
{
|
||||||
UniValue value;
|
UniValue value;
|
||||||
BOOST_CHECK(value.setNumStr(str));
|
value.setNumStr(str);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,16 +47,16 @@ public:
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
bool setNull();
|
void setNull();
|
||||||
bool setBool(bool val);
|
void setBool(bool val);
|
||||||
bool setNumStr(const std::string& val);
|
void setNumStr(const std::string& val);
|
||||||
bool setInt(uint64_t val);
|
void setInt(uint64_t val);
|
||||||
bool setInt(int64_t val);
|
void setInt(int64_t val);
|
||||||
bool setInt(int val_) { return setInt((int64_t)val_); }
|
void setInt(int val_) { return setInt(int64_t{val_}); }
|
||||||
bool setFloat(double val);
|
void setFloat(double val);
|
||||||
bool setStr(const std::string& val);
|
void setStr(const std::string& val);
|
||||||
bool setArray();
|
void setArray();
|
||||||
bool setObject();
|
void setObject();
|
||||||
|
|
||||||
enum VType getType() const { return typ; }
|
enum VType getType() const { return typ; }
|
||||||
const std::string& getValStr() const { return val; }
|
const std::string& getValStr() const { return val; }
|
||||||
|
|
|
@ -23,19 +23,17 @@ void UniValue::clear()
|
||||||
values.clear();
|
values.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setNull()
|
void UniValue::setNull()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setBool(bool val_)
|
void UniValue::setBool(bool val_)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
typ = VBOOL;
|
typ = VBOOL;
|
||||||
if (val_)
|
if (val_)
|
||||||
val = "1";
|
val = "1";
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool validNumStr(const std::string& s)
|
static bool validNumStr(const std::string& s)
|
||||||
|
@ -46,18 +44,18 @@ static bool validNumStr(const std::string& s)
|
||||||
return (tt == JTOK_NUMBER);
|
return (tt == JTOK_NUMBER);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setNumStr(const std::string& val_)
|
void UniValue::setNumStr(const std::string& val_)
|
||||||
{
|
{
|
||||||
if (!validNumStr(val_))
|
if (!validNumStr(val_)) {
|
||||||
return false;
|
throw std::runtime_error{"The string '" + val_ + "' is not a valid JSON number"};
|
||||||
|
}
|
||||||
|
|
||||||
clear();
|
clear();
|
||||||
typ = VNUM;
|
typ = VNUM;
|
||||||
val = val_;
|
val = val_;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setInt(uint64_t val_)
|
void UniValue::setInt(uint64_t val_)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
|
@ -66,7 +64,7 @@ bool UniValue::setInt(uint64_t val_)
|
||||||
return setNumStr(oss.str());
|
return setNumStr(oss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setInt(int64_t val_)
|
void UniValue::setInt(int64_t val_)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
|
@ -75,37 +73,32 @@ bool UniValue::setInt(int64_t val_)
|
||||||
return setNumStr(oss.str());
|
return setNumStr(oss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setFloat(double val_)
|
void UniValue::setFloat(double val_)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
oss << std::setprecision(16) << val_;
|
oss << std::setprecision(16) << val_;
|
||||||
|
|
||||||
bool ret = setNumStr(oss.str());
|
return setNumStr(oss.str());
|
||||||
typ = VNUM;
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setStr(const std::string& val_)
|
void UniValue::setStr(const std::string& val_)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
typ = VSTR;
|
typ = VSTR;
|
||||||
val = val_;
|
val = val_;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setArray()
|
void UniValue::setArray()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
typ = VARR;
|
typ = VARR;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UniValue::setObject()
|
void UniValue::setObject()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
typ = VOBJ;
|
typ = VOBJ;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UniValue::push_back(const UniValue& val_)
|
void UniValue::push_back(const UniValue& val_)
|
||||||
|
|
|
@ -45,7 +45,7 @@ void univalue_constructor()
|
||||||
BOOST_CHECK_EQUAL(v3.getValStr(), "foo");
|
BOOST_CHECK_EQUAL(v3.getValStr(), "foo");
|
||||||
|
|
||||||
UniValue numTest;
|
UniValue numTest;
|
||||||
BOOST_CHECK(numTest.setNumStr("82"));
|
numTest.setNumStr("82");
|
||||||
BOOST_CHECK(numTest.isNum());
|
BOOST_CHECK(numTest.isNum());
|
||||||
BOOST_CHECK_EQUAL(numTest.getValStr(), "82");
|
BOOST_CHECK_EQUAL(numTest.getValStr(), "82");
|
||||||
|
|
||||||
|
@ -93,33 +93,33 @@ void univalue_push_throw()
|
||||||
void univalue_typecheck()
|
void univalue_typecheck()
|
||||||
{
|
{
|
||||||
UniValue v1;
|
UniValue v1;
|
||||||
BOOST_CHECK(v1.setNumStr("1"));
|
v1.setNumStr("1");
|
||||||
BOOST_CHECK(v1.isNum());
|
BOOST_CHECK(v1.isNum());
|
||||||
BOOST_CHECK_THROW(v1.get_bool(), std::runtime_error);
|
BOOST_CHECK_THROW(v1.get_bool(), std::runtime_error);
|
||||||
|
|
||||||
{
|
{
|
||||||
UniValue v_negative;
|
UniValue v_negative;
|
||||||
BOOST_CHECK(v_negative.setNumStr("-1"));
|
v_negative.setNumStr("-1");
|
||||||
BOOST_CHECK_THROW(v_negative.getInt<uint8_t>(), std::runtime_error);
|
BOOST_CHECK_THROW(v_negative.getInt<uint8_t>(), std::runtime_error);
|
||||||
BOOST_CHECK_EQUAL(v_negative.getInt<int8_t>(), -1);
|
BOOST_CHECK_EQUAL(v_negative.getInt<int8_t>(), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
UniValue v2;
|
UniValue v2;
|
||||||
BOOST_CHECK(v2.setBool(true));
|
v2.setBool(true);
|
||||||
BOOST_CHECK_EQUAL(v2.get_bool(), true);
|
BOOST_CHECK_EQUAL(v2.get_bool(), true);
|
||||||
BOOST_CHECK_THROW(v2.getInt<int>(), std::runtime_error);
|
BOOST_CHECK_THROW(v2.getInt<int>(), std::runtime_error);
|
||||||
|
|
||||||
UniValue v3;
|
UniValue v3;
|
||||||
BOOST_CHECK(v3.setNumStr("32482348723847471234"));
|
v3.setNumStr("32482348723847471234");
|
||||||
BOOST_CHECK_THROW(v3.getInt<int64_t>(), std::runtime_error);
|
BOOST_CHECK_THROW(v3.getInt<int64_t>(), std::runtime_error);
|
||||||
BOOST_CHECK(v3.setNumStr("1000"));
|
v3.setNumStr("1000");
|
||||||
BOOST_CHECK_EQUAL(v3.getInt<int64_t>(), 1000);
|
BOOST_CHECK_EQUAL(v3.getInt<int64_t>(), 1000);
|
||||||
|
|
||||||
UniValue v4;
|
UniValue v4;
|
||||||
BOOST_CHECK(v4.setNumStr("2147483648"));
|
v4.setNumStr("2147483648");
|
||||||
BOOST_CHECK_EQUAL(v4.getInt<int64_t>(), 2147483648);
|
BOOST_CHECK_EQUAL(v4.getInt<int64_t>(), 2147483648);
|
||||||
BOOST_CHECK_THROW(v4.getInt<int>(), std::runtime_error);
|
BOOST_CHECK_THROW(v4.getInt<int>(), std::runtime_error);
|
||||||
BOOST_CHECK(v4.setNumStr("1000"));
|
v4.setNumStr("1000");
|
||||||
BOOST_CHECK_EQUAL(v4.getInt<int>(), 1000);
|
BOOST_CHECK_EQUAL(v4.getInt<int>(), 1000);
|
||||||
BOOST_CHECK_THROW(v4.get_str(), std::runtime_error);
|
BOOST_CHECK_THROW(v4.get_str(), std::runtime_error);
|
||||||
BOOST_CHECK_EQUAL(v4.get_real(), 1000);
|
BOOST_CHECK_EQUAL(v4.get_real(), 1000);
|
||||||
|
@ -146,55 +146,55 @@ void univalue_set()
|
||||||
BOOST_CHECK(v.isNull());
|
BOOST_CHECK(v.isNull());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "");
|
BOOST_CHECK_EQUAL(v.getValStr(), "");
|
||||||
|
|
||||||
BOOST_CHECK(v.setObject());
|
v.setObject();
|
||||||
BOOST_CHECK(v.isObject());
|
BOOST_CHECK(v.isObject());
|
||||||
BOOST_CHECK_EQUAL(v.size(), 0);
|
BOOST_CHECK_EQUAL(v.size(), 0);
|
||||||
BOOST_CHECK_EQUAL(v.getType(), UniValue::VOBJ);
|
BOOST_CHECK_EQUAL(v.getType(), UniValue::VOBJ);
|
||||||
BOOST_CHECK(v.empty());
|
BOOST_CHECK(v.empty());
|
||||||
|
|
||||||
BOOST_CHECK(v.setArray());
|
v.setArray();
|
||||||
BOOST_CHECK(v.isArray());
|
BOOST_CHECK(v.isArray());
|
||||||
BOOST_CHECK_EQUAL(v.size(), 0);
|
BOOST_CHECK_EQUAL(v.size(), 0);
|
||||||
|
|
||||||
BOOST_CHECK(v.setStr("zum"));
|
v.setStr("zum");
|
||||||
BOOST_CHECK(v.isStr());
|
BOOST_CHECK(v.isStr());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "zum");
|
BOOST_CHECK_EQUAL(v.getValStr(), "zum");
|
||||||
|
|
||||||
BOOST_CHECK(v.setFloat(-1.01));
|
v.setFloat(-1.01);
|
||||||
BOOST_CHECK(v.isNum());
|
BOOST_CHECK(v.isNum());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "-1.01");
|
BOOST_CHECK_EQUAL(v.getValStr(), "-1.01");
|
||||||
|
|
||||||
BOOST_CHECK(v.setInt((int)1023));
|
v.setInt(int{1023});
|
||||||
BOOST_CHECK(v.isNum());
|
BOOST_CHECK(v.isNum());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "1023");
|
BOOST_CHECK_EQUAL(v.getValStr(), "1023");
|
||||||
|
|
||||||
BOOST_CHECK(v.setInt((int64_t)-1023LL));
|
v.setInt(int64_t{-1023LL});
|
||||||
BOOST_CHECK(v.isNum());
|
BOOST_CHECK(v.isNum());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "-1023");
|
BOOST_CHECK_EQUAL(v.getValStr(), "-1023");
|
||||||
|
|
||||||
BOOST_CHECK(v.setInt((uint64_t)1023ULL));
|
v.setInt(uint64_t{1023ULL});
|
||||||
BOOST_CHECK(v.isNum());
|
BOOST_CHECK(v.isNum());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "1023");
|
BOOST_CHECK_EQUAL(v.getValStr(), "1023");
|
||||||
|
|
||||||
BOOST_CHECK(v.setNumStr("-688"));
|
v.setNumStr("-688");
|
||||||
BOOST_CHECK(v.isNum());
|
BOOST_CHECK(v.isNum());
|
||||||
BOOST_CHECK_EQUAL(v.getValStr(), "-688");
|
BOOST_CHECK_EQUAL(v.getValStr(), "-688");
|
||||||
|
|
||||||
BOOST_CHECK(v.setBool(false));
|
v.setBool(false);
|
||||||
BOOST_CHECK_EQUAL(v.isBool(), true);
|
BOOST_CHECK_EQUAL(v.isBool(), true);
|
||||||
BOOST_CHECK_EQUAL(v.isTrue(), false);
|
BOOST_CHECK_EQUAL(v.isTrue(), false);
|
||||||
BOOST_CHECK_EQUAL(v.isFalse(), true);
|
BOOST_CHECK_EQUAL(v.isFalse(), true);
|
||||||
BOOST_CHECK_EQUAL(v.getBool(), false);
|
BOOST_CHECK_EQUAL(v.getBool(), false);
|
||||||
|
|
||||||
BOOST_CHECK(v.setBool(true));
|
v.setBool(true);
|
||||||
BOOST_CHECK_EQUAL(v.isBool(), true);
|
BOOST_CHECK_EQUAL(v.isBool(), true);
|
||||||
BOOST_CHECK_EQUAL(v.isTrue(), true);
|
BOOST_CHECK_EQUAL(v.isTrue(), true);
|
||||||
BOOST_CHECK_EQUAL(v.isFalse(), false);
|
BOOST_CHECK_EQUAL(v.isFalse(), false);
|
||||||
BOOST_CHECK_EQUAL(v.getBool(), true);
|
BOOST_CHECK_EQUAL(v.getBool(), true);
|
||||||
|
|
||||||
BOOST_CHECK(!v.setNumStr("zombocom"));
|
BOOST_CHECK_THROW(v.setNumStr("zombocom"), std::runtime_error);
|
||||||
|
|
||||||
BOOST_CHECK(v.setNull());
|
v.setNull();
|
||||||
BOOST_CHECK(v.isNull());
|
BOOST_CHECK(v.isNull());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,7 +352,7 @@ void univalue_object()
|
||||||
BOOST_CHECK_EQUAL(obj.size(), 0);
|
BOOST_CHECK_EQUAL(obj.size(), 0);
|
||||||
BOOST_CHECK_EQUAL(obj.getType(), UniValue::VNULL);
|
BOOST_CHECK_EQUAL(obj.getType(), UniValue::VNULL);
|
||||||
|
|
||||||
BOOST_CHECK_EQUAL(obj.setObject(), true);
|
obj.setObject();
|
||||||
UniValue uv;
|
UniValue uv;
|
||||||
uv.setInt(42);
|
uv.setInt(42);
|
||||||
obj.__pushKV("age", uv);
|
obj.__pushKV("age", uv);
|
||||||
|
@ -419,7 +419,7 @@ void univalue_readwrite()
|
||||||
BOOST_CHECK(!v.read("{} 42"));
|
BOOST_CHECK(!v.read("{} 42"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
univalue_constructor();
|
univalue_constructor();
|
||||||
univalue_push_throw();
|
univalue_push_throw();
|
||||||
|
@ -430,4 +430,3 @@ int main (int argc, char *argv[])
|
||||||
univalue_readwrite();
|
univalue_readwrite();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue