diff --git a/src/expand.rs b/src/expand.rs index 237d92f..9b9cf09 100644 --- a/src/expand.rs +++ b/src/expand.rs @@ -335,7 +335,7 @@ fn transform_sig( // ___ret // }) fn transform_block(context: Context, sig: &mut Signature, block: &mut Block) { - let mut self_span = None; + let mut replace_self = false; let decls = sig .inputs .iter() @@ -346,8 +346,8 @@ fn transform_block(context: Context, sig: &mut Signature, block: &mut Block) { mutability, .. }) => { + replace_self = true; let ident = Ident::new("__self", self_token.span); - self_span = Some(self_token.span); quote!(let #mutability #ident = #self_token;) } FnArg::Typed(arg) => { @@ -389,9 +389,8 @@ fn transform_block(context: Context, sig: &mut Signature, block: &mut Block) { }) .collect::>(); - if let Some(span) = self_span { - let mut replace_self = ReplaceSelf(span); - replace_self.visit_block_mut(block); + if replace_self { + ReplaceSelf.visit_block_mut(block); } let stmts = &block.stmts; diff --git a/src/receiver.rs b/src/receiver.rs index f5791bf..e032dc1 100644 --- a/src/receiver.rs +++ b/src/receiver.rs @@ -1,4 +1,4 @@ -use proc_macro2::{Group, Span, TokenStream, TokenTree}; +use proc_macro2::{Group, TokenStream, TokenTree}; use syn::visit_mut::{self, VisitMut}; use syn::{ Block, ExprPath, Ident, Item, Macro, Pat, PatIdent, Path, Receiver, Signature, Token, TypePath, @@ -78,7 +78,7 @@ impl VisitMut for HasSelf { } } -pub struct ReplaceSelf(pub Span); +pub struct ReplaceSelf; impl ReplaceSelf { #[cfg_attr(not(self_span_hack), allow(clippy::unused_self))]