File tree 2 files changed +34
-1
lines changed
2 files changed +34
-1
lines changed Original file line number Diff line number Diff line change @@ -3394,7 +3394,10 @@ impl<'a> Parser<'a> {
3394
3394
/// Parse a structure field
3395
3395
fn parse_name_and_ty ( & mut self , pr : Visibility ,
3396
3396
attrs : Vec < Attribute > ) -> PResult < StructField > {
3397
- let lo = self . span . lo ;
3397
+ let lo = match pr {
3398
+ Inherited => self . span . lo ,
3399
+ Public => self . last_span . lo ,
3400
+ } ;
3398
3401
if !self . token . is_plain_ident ( ) {
3399
3402
return Err ( self . fatal ( "expected ident" ) ) ;
3400
3403
}
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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
+ // Regression test for issue #26083
12
+ // Test that span for public struct fields start at `pub` instead of the identifier
13
+
14
+ struct Foo {
15
+ pub bar : u8 ,
16
+
17
+ pub
18
+ //~^ error: field `bar` is already declared [E0124]
19
+ bar : u8 ,
20
+
21
+ pub bar :
22
+ //~^ error: field `bar` is already declared [E0124]
23
+ u8 ,
24
+
25
+ bar :
26
+ //~^ error: field `bar` is already declared [E0124]
27
+ u8 ,
28
+ }
29
+
30
+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments