diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 0ecba025e40..5ff52d0b88d 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -28,8 +29,8 @@ #include #include #include -#include #include +#include #include using util::SplitString; @@ -318,11 +319,12 @@ void ApplyTypeStrOverride(UniValue& schema, const RPCArg& arg) void ApplyArgFallback(UniValue& schema, const RPCArg& arg) { - if (const auto* def = std::get_if(&arg.m_fallback)) { - schema.pushKV("default", *def); - } else if (const auto* hint = std::get_if(&arg.m_fallback)) { - schema.pushKV("x-bitcoin-default-hint", *hint); - } + std::visit(util::Overloaded{ + [&](const RPCArg::Default& def) { schema.pushKV("default", def); }, + [&](const RPCArg::DefaultHint& hint) { schema.pushKV("x-bitcoin-default-hint", hint); }, + [](const RPCArg::Optional&) {}, + }, + arg.m_fallback); } // NOLINTNEXTLINE(misc-no-recursion)