diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2014-06-13 09:40:10 +1000 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-06-13 13:53:55 -0700 |
| commit | f907d9772c55d942fb178622b0b2b5a8ca103c11 (patch) | |
| tree | 04b61cb264604b465dc9a80c3246734e665942fb /src/libsyntax/parse | |
| parent | 9d5ec04d184a5d28e75d74b725ebb7cc21b547af (diff) | |
| download | rust-f907d9772c55d942fb178622b0b2b5a8ca103c11.tar.gz rust-f907d9772c55d942fb178622b0b2b5a8ca103c11.zip | |
syntax: parse outer attributes in `quote_item!` calls.
Fixes #14857.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 88746d145b6..1ebcbc8a7d1 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -117,8 +117,7 @@ pub fn parse_item_from_source_str(name: String, sess: &ParseSess) -> Option<Gc<ast::Item>> { let mut p = new_parser_from_source_str(sess, cfg, name, source); - let attrs = p.parse_outer_attributes(); - maybe_aborted(p.parse_item(attrs),p) + maybe_aborted(p.parse_item_with_outer_attributes(),p) } pub fn parse_meta_from_source_str(name: String, diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index e1a45e5643d..d11d303059f 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -4965,6 +4965,11 @@ impl<'a> Parser<'a> { return IoviNone(attrs); } + pub fn parse_item_with_outer_attributes(&mut self) -> Option<Gc<Item>> { + let attrs = self.parse_outer_attributes(); + self.parse_item(attrs) + } + pub fn parse_item(&mut self, attrs: Vec<Attribute> ) -> Option<Gc<Item>> { match self.parse_item_or_view_item(attrs, true) { IoviNone(_) => None, |
