From f907d9772c55d942fb178622b0b2b5a8ca103c11 Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Fri, 13 Jun 2014 09:40:10 +1000 Subject: syntax: parse outer attributes in `quote_item!` calls. Fixes #14857. --- src/libsyntax/parse/mod.rs | 3 +-- src/libsyntax/parse/parser.rs | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/libsyntax/parse') 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> { 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> { + let attrs = self.parse_outer_attributes(); + self.parse_item(attrs) + } + pub fn parse_item(&mut self, attrs: Vec ) -> Option> { match self.parse_item_or_view_item(attrs, true) { IoviNone(_) => None, -- cgit 1.4.1-3-g733a5