From a896ed39879df82d0528c7a31e6136a93122e1ee Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Tue, 10 Mar 2026 14:56:24 +0000 Subject: [PATCH] chore: Enable clang-tidy `bugprone-optional-value-conversion` check (#6470) --- .clang-tidy | 2 +- src/libxrpl/protocol/Permissions.cpp | 2 +- src/test/app/PayStrand_test.cpp | 4 ++-- src/test/app/ValidatorList_test.cpp | 2 +- src/xrpld/rpc/detail/DeliveredAmount.cpp | 2 +- src/xrpld/rpc/handlers/Simulate.cpp | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index b100938182..04bb857609 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -30,6 +30,7 @@ Checks: "-*, bugprone-multiple-statement-macro, bugprone-no-escape, bugprone-non-zero-enum-to-bool-conversion, + bugprone-optional-value-conversion, bugprone-parent-virtual-call, bugprone-pointer-arithmetic-on-polymorphic-object, bugprone-posix-return, @@ -97,7 +98,6 @@ Checks: "-*, # bugprone-inc-dec-in-conditions, # bugprone-move-forwarding-reference, # bugprone-switch-missing-default-case, -# bugprone-optional-value-conversion, # bugprone-unused-return-value, # bugprone-use-after-move, # bugprone-unhandled-self-assignment, diff --git a/src/libxrpl/protocol/Permissions.cpp b/src/libxrpl/protocol/Permissions.cpp index 991f9d4d82..cce7ab5058 100644 --- a/src/libxrpl/protocol/Permissions.cpp +++ b/src/libxrpl/protocol/Permissions.cpp @@ -86,7 +86,7 @@ Permission::getPermissionName(std::uint32_t const value) const { auto const permissionValue = static_cast(value); if (auto const granular = getGranularName(permissionValue)) - return *granular; + return granular; // not a granular permission, check if it maps to a transaction type auto const txType = permissionToTxType(value); diff --git a/src/test/app/PayStrand_test.cpp b/src/test/app/PayStrand_test.cpp index a45da5f5f6..8c2ae698d0 100644 --- a/src/test/app/PayStrand_test.cpp +++ b/src/test/app/PayStrand_test.cpp @@ -262,7 +262,7 @@ public: if (has(SB::sameAccIss)) return acc; if (has(SB::existingIss) && existingIss) - return *existingIss; + return existingIss; return issF().id(); }(); auto const cur = [&]() -> std::optional { @@ -271,7 +271,7 @@ public: if (has(SB::xrp)) return xrpCurrency(); if (has(SB::existingCur) && existingCur) - return *existingCur; + return existingCur; return currencyF(); }(); if (!has(SB::boundary)) diff --git a/src/test/app/ValidatorList_test.cpp b/src/test/app/ValidatorList_test.cpp index 61d71b1883..c85a508fb9 100644 --- a/src/test/app/ValidatorList_test.cpp +++ b/src/test/app/ValidatorList_test.cpp @@ -297,7 +297,7 @@ private: auto const localSigningPublic = parseBase58(TokenType::NodePublic, cfgKeys.front()); - BEAST_EXPECT(trustedKeys->load(*localSigningPublic, cfgKeys, emptyCfgPublishers)); + BEAST_EXPECT(trustedKeys->load(localSigningPublic, cfgKeys, emptyCfgPublishers)); BEAST_EXPECT(trustedKeys->localPublicKey() == localSigningPublic); BEAST_EXPECT(trustedKeys->listed(*localSigningPublic)); diff --git a/src/xrpld/rpc/detail/DeliveredAmount.cpp b/src/xrpld/rpc/detail/DeliveredAmount.cpp index 7cb90eaa98..3e89edc1f9 100644 --- a/src/xrpld/rpc/detail/DeliveredAmount.cpp +++ b/src/xrpld/rpc/detail/DeliveredAmount.cpp @@ -34,7 +34,7 @@ getDeliveredAmount( if (auto const& deliveredAmount = transactionMeta.getDeliveredAmount(); deliveredAmount.has_value()) { - return *deliveredAmount; + return deliveredAmount; } if (serializedTx->isFieldPresent(sfAmount)) diff --git a/src/xrpld/rpc/handlers/Simulate.cpp b/src/xrpld/rpc/handlers/Simulate.cpp index 5703597beb..1d46f72425 100644 --- a/src/xrpld/rpc/handlers/Simulate.cpp +++ b/src/xrpld/rpc/handlers/Simulate.cpp @@ -126,7 +126,7 @@ autofillTx(Json::Value& tx_json, RPC::JsonContext& context) } if (auto error = autofillSignature(tx_json)) - return *error; + return error; if (!tx_json.isMember(jss::Sequence)) {