File tree 2 files changed +35
-1
lines changed 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> {
1261
1261
}
1262
1262
ExprKind :: Paren ( ref ex) => {
1263
1263
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
+ }
1265
1268
// merge attributes into the inner expression.
1266
1269
ex. attrs . update ( |attrs| {
1267
1270
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