Skip to content

Commit 71a52a2

Browse files
committed
syntax: Fix duplicate attributes on module files
The outer attributes were manually appended when a module file was parsed, but the attributes were also added higher up the stack of parsing (when the module finished parsing). This removes the append in parsing the module file. Closes #13826
1 parent 0b7954f commit 71a52a2

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

src/libsyntax/parse/parser.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4155,14 +4155,11 @@ impl<'a> Parser<'a> {
41554155
}
41564156
};
41574157

4158-
self.eval_src_mod_from_path(file_path,
4159-
outer_attrs.iter().map(|x| *x).collect(),
4160-
id_sp)
4158+
self.eval_src_mod_from_path(file_path, id_sp)
41614159
}
41624160

41634161
fn eval_src_mod_from_path(&mut self,
41644162
path: Path,
4165-
outer_attrs: Vec<ast::Attribute> ,
41664163
id_sp: Span) -> (ast::Item_, Vec<ast::Attribute> ) {
41674164
let mut included_mod_stack = self.sess.included_mod_stack.borrow_mut();
41684165
match included_mod_stack.iter().position(|p| *p == path) {
@@ -4187,8 +4184,7 @@ impl<'a> Parser<'a> {
41874184
&path,
41884185
id_sp);
41894186
let mod_inner_lo = p0.span.lo;
4190-
let (inner, next) = p0.parse_inner_attrs_and_next();
4191-
let mod_attrs = outer_attrs.append(inner.as_slice());
4187+
let (mod_attrs, next) = p0.parse_inner_attrs_and_next();
41924188
let first_item_outer_attrs = next;
41934189
let m0 = p0.parse_mod_items(token::EOF, first_item_outer_attrs, mod_inner_lo);
41944190
self.sess.included_mod_stack.borrow_mut().pop();

0 commit comments

Comments
 (0)