Skip to content

Commit e014277

Browse files
committed
Ignore automatically derived impls of Clone and Debug in dead code analysis
1 parent 6271ded commit e014277

File tree

2 files changed

+6
-31
lines changed

2 files changed

+6
-31
lines changed

src/macros.rs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,6 @@ impl MacroArgKind {
762762
#[derive(Debug, Clone)]
763763
struct ParsedMacroArg {
764764
kind: MacroArgKind,
765-
span: Span,
766765
}
767766

768767
impl ParsedMacroArg {
@@ -780,14 +779,10 @@ impl ParsedMacroArg {
780779
struct MacroArgParser {
781780
/// Either a name of the next metavariable, a separator, or junk.
782781
buf: String,
783-
/// The start position on the current buffer.
784-
lo: BytePos,
785782
/// The first token of the current buffer.
786783
start_tok: Token,
787784
/// `true` if we are parsing a metavariable or a repeat.
788785
is_meta_var: bool,
789-
/// The position of the last token.
790-
hi: BytePos,
791786
/// The last token parsed.
792787
last_tok: Token,
793788
/// Holds the parsed arguments.
@@ -807,8 +802,6 @@ fn last_tok(tt: &TokenTree) -> Token {
807802
impl MacroArgParser {
808803
fn new() -> MacroArgParser {
809804
MacroArgParser {
810-
lo: BytePos(0),
811-
hi: BytePos(0),
812805
buf: String::new(),
813806
is_meta_var: false,
814807
last_tok: Token {
@@ -824,7 +817,6 @@ impl MacroArgParser {
824817
}
825818

826819
fn set_last_tok(&mut self, tok: &TokenTree) {
827-
self.hi = tok.span().hi();
828820
self.last_tok = last_tok(tok);
829821
}
830822

@@ -836,7 +828,6 @@ impl MacroArgParser {
836828
};
837829
self.result.push(ParsedMacroArg {
838830
kind: MacroArgKind::Separator(self.buf.clone(), prefix),
839-
span: mk_sp(self.lo, self.hi),
840831
});
841832
self.buf.clear();
842833
}
@@ -849,7 +840,6 @@ impl MacroArgParser {
849840
};
850841
self.result.push(ParsedMacroArg {
851842
kind: MacroArgKind::Other(self.buf.clone(), prefix),
852-
span: mk_sp(self.lo, self.hi),
853843
});
854844
self.buf.clear();
855845
}
@@ -858,11 +848,10 @@ impl MacroArgParser {
858848
match iter.next() {
859849
Some(TokenTree::Token(Token {
860850
kind: TokenKind::Ident(name, _),
861-
span,
851+
..
862852
})) => {
863853
self.result.push(ParsedMacroArg {
864854
kind: MacroArgKind::MetaVariable(name, self.buf.clone()),
865-
span: mk_sp(self.lo, span.hi()),
866855
});
867856

868857
self.buf.clear();
@@ -873,10 +862,9 @@ impl MacroArgParser {
873862
}
874863
}
875864

876-
fn add_delimited(&mut self, inner: Vec<ParsedMacroArg>, delim: DelimToken, span: Span) {
865+
fn add_delimited(&mut self, inner: Vec<ParsedMacroArg>, delim: DelimToken) {
877866
self.result.push(ParsedMacroArg {
878867
kind: MacroArgKind::Delimited(delim, inner),
879-
span,
880868
});
881869
}
882870

@@ -886,19 +874,15 @@ impl MacroArgParser {
886874
inner: Vec<ParsedMacroArg>,
887875
delim: DelimToken,
888876
iter: &mut Cursor,
889-
span: Span,
890877
) -> Option<()> {
891878
let mut buffer = String::new();
892879
let mut first = true;
893-
let mut lo = span.lo();
894-
let mut hi = span.hi();
895880

896881
// Parse '*', '+' or '?.
897882
for tok in iter {
898883
self.set_last_tok(&tok);
899884
if first {
900885
first = false;
901-
lo = tok.span().lo();
902886
}
903887

904888
match tok {
@@ -918,7 +902,6 @@ impl MacroArgParser {
918902
}
919903
TokenTree::Token(ref t) => {
920904
buffer.push_str(&pprust::token_to_string(&t));
921-
hi = t.span.hi();
922905
}
923906
_ => return None,
924907
}
@@ -930,20 +913,17 @@ impl MacroArgParser {
930913
} else {
931914
Some(Box::new(ParsedMacroArg {
932915
kind: MacroArgKind::Other(buffer, "".to_owned()),
933-
span: mk_sp(lo, hi),
934916
}))
935917
};
936918

937919
self.result.push(ParsedMacroArg {
938920
kind: MacroArgKind::Repeat(delim, inner, another, self.last_tok.clone()),
939-
span: mk_sp(self.lo, self.hi),
940921
});
941922
Some(())
942923
}
943924

944925
fn update_buffer(&mut self, t: &Token) {
945926
if self.buf.is_empty() {
946-
self.lo = t.span.lo();
947927
self.start_tok = t.clone();
948928
} else {
949929
let needs_space = match next_space(&self.last_tok.kind) {
@@ -999,7 +979,6 @@ impl MacroArgParser {
999979

1000980
// Start keeping the name of this metavariable in the buffer.
1001981
self.is_meta_var = true;
1002-
self.lo = span.lo();
1003982
self.start_tok = Token {
1004983
kind: TokenKind::Dollar,
1005984
span,
@@ -1012,7 +991,7 @@ impl MacroArgParser {
1012991
self.add_meta_variable(&mut iter)?;
1013992
}
1014993
TokenTree::Token(ref t) => self.update_buffer(t),
1015-
TokenTree::Delimited(delimited_span, delimited, ref tts) => {
994+
TokenTree::Delimited(_delimited_span, delimited, ref tts) => {
1016995
if !self.buf.is_empty() {
1017996
if next_space(&self.last_tok.kind) == SpaceState::Always {
1018997
self.add_separator();
@@ -1022,16 +1001,14 @@ impl MacroArgParser {
10221001
}
10231002

10241003
// Parse the stuff inside delimiters.
1025-
let mut parser = MacroArgParser::new();
1026-
parser.lo = delimited_span.open.lo();
1004+
let parser = MacroArgParser::new();
10271005
let delimited_arg = parser.parse(tts.clone())?;
10281006

1029-
let span = delimited_span.entire();
10301007
if self.is_meta_var {
1031-
self.add_repeat(delimited_arg, delimited, &mut iter, span)?;
1008+
self.add_repeat(delimited_arg, delimited, &mut iter)?;
10321009
self.is_meta_var = false;
10331010
} else {
1034-
self.add_delimited(delimited_arg, delimited, span);
1011+
self.add_delimited(delimited_arg, delimited);
10351012
}
10361013
}
10371014
}

src/modules.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ type FileModMap<'ast> = BTreeMap<FileName, Module<'ast>>;
2727
pub(crate) struct Module<'a> {
2828
ast_mod_kind: Option<Cow<'a, ast::ModKind>>,
2929
pub(crate) items: Cow<'a, Vec<rustc_ast::ptr::P<ast::Item>>>,
30-
attrs: Cow<'a, Vec<ast::Attribute>>,
3130
inner_attr: Vec<ast::Attribute>,
3231
pub(crate) span: Span,
3332
}
@@ -46,7 +45,6 @@ impl<'a> Module<'a> {
4645
.collect();
4746
Module {
4847
items: mod_items,
49-
attrs: mod_attrs,
5048
inner_attr,
5149
span: mod_span,
5250
ast_mod_kind,

0 commit comments

Comments
 (0)