Merge bitcoin/bitcoin#35900: iwyu: Fix warnings in src/interfaces and treat them as errors

b3ff9c4d68 iwyu: Fix warnings in `src/interfaces` and treat them as errors (Hennadii Stepanov)
d564b0255f iwyu: Add temporary mapping to work around upstream bug (Hennadii Stepanov)

Pull request description:

  This PR continues the ongoing effort to enforce IWYU warnings.

  See [Developer Notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#using-iwyu).

ACKs for top commit:
  maflcko:
    review ACK b3ff9c4d68 🖋

Tree-SHA512: 9359854c7b6e6ec93022947e78ef57fc68728326df874371028997a550fd1b6ef08e4b09271163b9d5c921c9e01deadf92b0eb5ae3f620d797e4f9bdea8f4727
This commit is contained in:
merge-script
2026-08-27 14:55:53 +01:00
7 changed files with 22 additions and 27 deletions

View File

@@ -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

View File

@@ -5,4 +5,8 @@
{ "include": [ "<mmintrin.h>", "private", "<immintrin.h>", "public" ] },
{ "include": [ "<smmintrin.h>", "private", "<immintrin.h>", "public" ] },
{ "include": [ "<tmmintrin.h>", "private", "<immintrin.h>", "public" ] },
# Workaround for IWYU issue.
# See: https://github.com/include-what-you-use/include-what-you-use/issues/2084.
{ "symbol": ["std::tuple", "private", "<tuple>", "public"] },
]

View File

@@ -7,12 +7,13 @@
#include <blockfilter.h>
#include <common/settings.h>
#include <consensus/amount.h>
#include <kernel/chain.h> // IWYU pragma: export
#include <node/types.h>
#include <primitives/transaction.h>
#include <util/expected.h>
#include <util/fees.h>
#include <util/result.h>
#include <util/time.h>
#include <cstddef>
#include <cstdint>
@@ -23,9 +24,7 @@
#include <string>
#include <vector>
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

View File

@@ -11,35 +11,30 @@
#include <net_types.h>
#include <netaddress.h>
#include <netbase.h>
#include <support/allocators/secure.h>
#include <primitives/transaction.h>
#include <uint256.h>
#include <util/log.h>
#include <util/translation.h>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <tuple>
#include <vector>
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;

View File

@@ -10,37 +10,34 @@
#include <common/types.h>
#include <consensus/amount.h>
#include <interfaces/chain.h>
#include <primitives/transaction_identifier.h>
#include <pubkey.h>
#include <script/script.h>
#include <primitives/transaction.h>
#include <support/allocators/secure.h>
#include <util/fs.h>
#include <util/result.h>
#include <util/ui_change_type.h>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>
class CFeeRate;
class CKey;
class ArgsManager;
class CKeyID;
class CPubKey;
class CScript;
class PartiallySignedTransaction;
class uint256;
enum class FeeReason;
enum class OutputType;
class PartiallySignedTransaction;
struct bilingual_str;
namespace common {
enum class PSBTError;
} // namespace common
namespace node {
enum class TransactionError;
} // namespace node
namespace wallet {
struct CreatedTransactionResult;
class CCoinControl;

View File

@@ -13,6 +13,7 @@
#include <algorithm>
#include <cstddef>
#include <variant>
const SigningProvider& DUMMY_SIGNING_PROVIDER = SigningProvider();

View File

@@ -25,7 +25,6 @@
#include <span>
#include <tuple>
#include <utility>
#include <variant>
#include <vector>
class MuSig2SecNonce;