diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-03-26 12:32:32 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-03-26 12:32:32 -0700 |
| commit | 8d1cc72cf9fca507f4e14fad88f7269594305846 (patch) | |
| tree | 77a8857259f71cf64c06b1ae3b1b22064782077c | |
| parent | 1bb3694b1a6368f456c2e62cf234a332a21df2a0 (diff) | |
| download | rust-8d1cc72cf9fca507f4e14fad88f7269594305846.tar.gz rust-8d1cc72cf9fca507f4e14fad88f7269594305846.zip | |
Add specific message for tuple struct invoked with suffixed numeric field name
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-59418.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-59418.stderr | 14 |
3 files changed, 21 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index bb3dc8edfb0..71dde91e654 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2491,7 +2491,8 @@ impl<'a> Parser<'a> { } fn parse_field_name(&mut self) -> PResult<'a, Ident> { - if let token::Literal(token::Integer(name), None) = self.token { + if let token::Literal(token::Integer(name), suffix) = self.token { + self.expect_no_suffix(self.span, "a tuple index", suffix); self.bump(); Ok(Ident::new(name, self.prev_span)) } else { diff --git a/src/test/ui/parser/issue-59418.rs b/src/test/ui/parser/issue-59418.rs index a37af2180bf..0fa191d4a7e 100644 --- a/src/test/ui/parser/issue-59418.rs +++ b/src/test/ui/parser/issue-59418.rs @@ -9,4 +9,10 @@ fn main() { let d = c.1suffix; //~^ ERROR suffixes on a tuple index are invalid println!("{}", d); + let s = X { 0suffix: 0, 1: 1, 2: 2 }; + //~^ ERROR suffixes on a tuple index are invalid + match s { + X { 0suffix: _, .. } => {} + //~^ ERROR suffixes on a tuple index are invalid + } } diff --git a/src/test/ui/parser/issue-59418.stderr b/src/test/ui/parser/issue-59418.stderr index ca7d4cfda72..347051e9f92 100644 --- a/src/test/ui/parser/issue-59418.stderr +++ b/src/test/ui/parser/issue-59418.stderr @@ -10,5 +10,17 @@ error: suffixes on a tuple index are invalid LL | let d = c.1suffix; | ^^^^^^^ invalid suffix `suffix` -error: aborting due to 2 previous errors +error: suffixes on a tuple index are invalid + --> $DIR/issue-59418.rs:12:17 + | +LL | let s = X { 0suffix: 0, 1: 1, 2: 2 }; + | ^^^^^^^ invalid suffix `suffix` + +error: suffixes on a tuple index are invalid + --> $DIR/issue-59418.rs:15:13 + | +LL | X { 0suffix: _, .. } => {} + | ^^^^^^^ invalid suffix `suffix` + +error: aborting due to 4 previous errors |
