File tree Expand file tree Collapse file tree 2 files changed +35
-1
lines changed
Expand file tree Collapse file tree 2 files changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -1261,7 +1261,10 @@ impl<'a> LoweringContext<'a> {
12611261 }
12621262 ExprKind :: Paren ( ref ex) => {
12631263 return self . lower_expr ( ex) . map ( |mut ex| {
1264- ex. span = e. span ;
1264+ // include parens in span, but only if it is a super-span.
1265+ if e. span . contains ( ex. span ) {
1266+ ex. span = e. span ;
1267+ }
12651268 // merge attributes into the inner expression.
12661269 ex. attrs . update ( |attrs| {
12671270 attrs. prepend ( e. attrs . clone ( ) )
Original file line number Diff line number Diff line change 1+ // Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+ // file at the top-level directory of this distribution and at
3+ // http://rust-lang.org/COPYRIGHT.
4+ //
5+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+ // option. This file may not be copied, modified, or distributed
9+ // except according to those terms.
10+
11+ // Be smart about span of parenthesized expression in macro.
12+
13+ macro_rules! paren {
14+ ( $e: expr) => ( ( $e) )
15+ // ^^^^ do not highlight here
16+ }
17+
18+ mod m {
19+ pub struct S {
20+ x : i32
21+ }
22+ pub fn make ( ) -> S {
23+ S { x : 0 }
24+ }
25+ }
26+
27+ fn main ( ) {
28+ let s = m:: make ( ) ;
29+ paren ! ( s. x) ; //~ ERROR field `x` of struct `m::S` is private
30+ // ^^^ highlight here
31+ }
You can’t perform that action at this time.
0 commit comments