Allow unused imports for traits used in macros
What changed, and why it matters
This commit only adds Rust compiler annotations to silence false 'unused import' warnings for traits that are actually used inside macros. It does not change any program logic, behavior, or security boundary.
No security action needed. Treat as a normal code-quality/lint suppression change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch adds #[allow(unused_imports)] attributes and renames trait imports with ‘as _’ in four files. This is a common Rust pattern to prevent the compiler from warning about trait imports whose methods are invoked through generated macro code. No functional code paths are modified.
Changed components
lightning-block-sync/src/lib.rslightning/src/chain/chainmonitor.rslightning/src/chain/channelmonitor.rslightning/src/ln/channelmanager.rsInspect captured patch +10 / −4
diff --git a/lightning-block-sync/src/lib.rs b/lightning-block-sync/src/lib.rs
index 281a05a..6cc8e2f 100644
--- a/lightning-block-sync/src/lib.rs
+++ b/lightning-block-sync/src/lib.rs
@@ -49,7 +49,8 @@ use bitcoin::hash_types::BlockHash;
use bitcoin::pow::Work;
use lightning::chain;
-use lightning::chain::Listen;
+#[allow(unused_imports)] // This thinks trait imports are unused if they're use in macros :(
+use lightning::chain::Listen as _;
use std::future::Future;
use std::ops::Deref;
diff --git a/lightning/src/chain/chainmonitor.rs b/lightning/src/chain/chainmonitor.rs
index 0de3728..58770d6 100644
--- a/lightning/src/chain/chainmonitor.rs
+++ b/lightning/src/chain/chainmonitor.rs
@@ -33,7 +33,9 @@ use crate::chain::channelmonitor::{
WithChannelMonitor,
};
use crate::chain::transaction::{OutPoint, TransactionData};
-use crate::chain::{ChannelMonitorUpdateStatus, Filter, WatchedOutput};
+#[allow(unused_imports)] // This thinks trait imports are unused if they're use in macros :(
+use crate::chain::Filter as _;
+use crate::chain::{ChannelMonitorUpdateStatus, WatchedOutput};
use crate::events::{self, Event, EventHandler, ReplayEvent};
use crate::ln::channel_state::ChannelDetails;
use crate::ln::msgs::{self, BaseMessageHandler, Init, MessageSendEvent, SendOnlyMessageHandler};
diff --git a/lightning/src/chain/channelmonitor.rs b/lightning/src/chain/channelmonitor.rs
index c7011af..7738fd2 100644
--- a/lightning/src/chain/channelmonitor.rs
+++ b/lightning/src/chain/channelmonitor.rs
@@ -42,7 +42,8 @@ use crate::chain::package::{
HolderHTLCOutput, PackageSolvingData, PackageTemplate, RevokedHTLCOutput, RevokedOutput,
};
use crate::chain::transaction::{OutPoint, TransactionData};
-use crate::chain::Filter;
+#[allow(unused_imports)] // This thinks trait imports are unused if they're use in macros :(
+use crate::chain::Filter as _;
use crate::chain::{BestBlock, WatchedOutput};
use crate::events::bump_transaction::{AnchorDescriptor, BumpTransactionEvent};
use crate::events::{ClosureReason, Event, EventHandler, ReplayEvent};
diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs
index 8ab1724..455f3e9 100644
--- a/lightning/src/ln/channelmanager.rs
+++ b/lightning/src/ln/channelmanager.rs
@@ -50,7 +50,9 @@ use crate::chain::channelmonitor::{
LATENCY_GRACE_PERIOD_BLOCKS, MAX_BLOCKS_FOR_CONF,
};
use crate::chain::transaction::{OutPoint, TransactionData};
-use crate::chain::{BestBlock, ChannelMonitorUpdateStatus, Confirm, Watch};
+#[allow(unused_imports)] // This thinks trait imports are unused if they're use in macros :(
+use crate::chain::Watch as _;
+use crate::chain::{BestBlock, ChannelMonitorUpdateStatus, Confirm};
use crate::events::{
self, ClosureReason, Event, EventHandler, EventsProvider, HTLCHandlingFailureType,
InboundChannelFunds, PaymentFailureReason, ReplayEvent,
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.