From 0bddba9248674fe9fde68d3e31fcc9afee7b505c Mon Sep 17 00:00:00 2001 From: Seiichi Uchida Date: Sat, 27 Jan 2018 16:15:00 +0900 Subject: Add a span field to Visibility::Restricted This span covers the whole visibility expression: e.g. `pub (in path)`. --- src/libsyntax/parse/parser.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index effc5f75f6a..230c0bff917 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5710,8 +5710,12 @@ impl<'a> Parser<'a> { self.bump(); // `(` self.bump(); // `in` let path = self.parse_path(PathStyle::Mod)?.default_to_global(); // `path` - let vis = Visibility::Restricted { path: P(path), id: ast::DUMMY_NODE_ID }; self.expect(&token::CloseDelim(token::Paren))?; // `)` + let vis = Visibility::Restricted { + path: P(path), + id: ast::DUMMY_NODE_ID, + span: self.prev_span, + }; return Ok(vis) } else if self.look_ahead(2, |t| t == &token::CloseDelim(token::Paren)) && self.look_ahead(1, |t| t.is_keyword(keywords::Super) || @@ -5720,8 +5724,12 @@ impl<'a> Parser<'a> { // `pub(self)` or `pub(super)` self.bump(); // `(` let path = self.parse_path(PathStyle::Mod)?.default_to_global(); // `super`/`self` - let vis = Visibility::Restricted { path: P(path), id: ast::DUMMY_NODE_ID }; self.expect(&token::CloseDelim(token::Paren))?; // `)` + let vis = Visibility::Restricted { + path: P(path), + id: ast::DUMMY_NODE_ID, + span: self.prev_span, + }; return Ok(vis) } else if !can_take_tuple { // Provide this diagnostic if this is not a tuple struct // `pub(something) fn ...` or `struct X { pub(something) y: Z }` -- cgit 1.4.1-3-g733a5