From d564b0255f7ec984b1c788910a113a2533dd4d6a Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Wed, 5 Aug 2026 16:13:12 +0100 Subject: [PATCH 1/2] iwyu: Add temporary mapping to work around upstream bug --- contrib/devtools/iwyu/bitcoin.core.imp | 4 ++++ src/script/signingprovider.cpp | 1 + src/script/signingprovider.h | 1 - 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/contrib/devtools/iwyu/bitcoin.core.imp b/contrib/devtools/iwyu/bitcoin.core.imp index 9b471cb82f2..ca7e2750896 100644 --- a/contrib/devtools/iwyu/bitcoin.core.imp +++ b/contrib/devtools/iwyu/bitcoin.core.imp @@ -5,4 +5,8 @@ { "include": [ "", "private", "", "public" ] }, { "include": [ "", "private", "", "public" ] }, { "include": [ "", "private", "", "public" ] }, + + # Workaround for IWYU issue. + # See: https://github.com/include-what-you-use/include-what-you-use/issues/2084. + { "symbol": ["std::tuple", "private", "", "public"] }, ] diff --git a/src/script/signingprovider.cpp b/src/script/signingprovider.cpp index 2b5d6e2f696..6e2e6c9c6e5 100644 --- a/src/script/signingprovider.cpp +++ b/src/script/signingprovider.cpp @@ -13,6 +13,7 @@ #include #include +#include const SigningProvider& DUMMY_SIGNING_PROVIDER = SigningProvider(); diff --git a/src/script/signingprovider.h b/src/script/signingprovider.h index ef9141a1cc6..cf2ad5a8e85 100644 --- a/src/script/signingprovider.h +++ b/src/script/signingprovider.h @@ -25,7 +25,6 @@ #include #include #include -#include #include class MuSig2SecNonce; From b3ff9c4d683fdcd0530b7c76c408b4a6e9e0830e Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Wed, 5 Aug 2026 16:13:42 +0100 Subject: [PATCH 2/2] iwyu: Fix warnings in `src/interfaces` and treat them as errors --- ci/test/03_test_script.sh | 1 + src/interfaces/chain.h | 8 +++----- src/interfaces/node.h | 11 +++-------- src/interfaces/wallet.h | 23 ++++++++++------------- 4 files changed, 17 insertions(+), 26 deletions(-) diff --git a/ci/test/03_test_script.sh b/ci/test/03_test_script.sh index f89ba657156..cffd87af9c7 100755 --- a/ci/test/03_test_script.sh +++ b/ci/test/03_test_script.sh @@ -249,6 +249,7 @@ if [[ "${RUN_IWYU}" == true ]]; then -Xiwyu --max_line_length=160 \ -Xiwyu --check_also='*/common/types\.h' \ -Xiwyu --check_also='*/consensus/*\.h' \ + -Xiwyu --check_also='*/interfaces/*\.h' \ -Xiwyu --check_also='*/primitives/transaction_identifier\.h' \ 2>&1 || true } | tee /tmp/iwyu_ci.out diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h index 4b63d885a97..d713ee7c0a8 100644 --- a/src/interfaces/chain.h +++ b/src/interfaces/chain.h @@ -7,12 +7,13 @@ #include #include +#include #include // IWYU pragma: export -#include #include #include #include #include +#include #include #include @@ -23,9 +24,7 @@ #include #include -class ArgsManager; class CBlock; -class CBlockUndo; class CFeeRate; class CRPCCommand; class CScheduler; @@ -40,12 +39,11 @@ struct ChainstateRole; } // namespace kernel namespace node { struct NodeContext; +enum class TxBroadcast : uint8_t; } // namespace node namespace interfaces { - class Handler; -class Wallet; //! Helper for findBlock to selectively return pieces of block data. If block is //! found, data will be returned by setting specified output variables. If block diff --git a/src/interfaces/node.h b/src/interfaces/node.h index 8b8402ece16..260d9557e17 100644 --- a/src/interfaces/node.h +++ b/src/interfaces/node.h @@ -11,35 +11,30 @@ #include #include #include -#include +#include +#include #include #include #include #include #include +#include #include #include #include #include #include -class BanMan; class CFeeRate; -class CNodeStats; class Coin; class UniValue; -class Proxy; enum class SynchronizationState; struct CNodeStateStats; -struct bilingual_str; namespace node { enum class TransactionError; struct NodeContext; } // namespace node -namespace wallet { -class CCoinControl; -} // namespace wallet namespace interfaces { class Handler; diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h index d34fc62aca8..9d3c7ff47ba 100644 --- a/src/interfaces/wallet.h +++ b/src/interfaces/wallet.h @@ -10,37 +10,34 @@ #include #include #include -#include -#include -#include