diff options
| author | varkor <github@varkor.com> | 2019-05-06 17:00:01 +0100 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2019-05-06 17:00:01 +0100 |
| commit | 594685b5a2f35e2ff4fc01aca2ae91de92ed0993 (patch) | |
| tree | 1acec67c4d1e186d0ec58e70e29411a7b38c13ea | |
| parent | 7ac02005f3d7ac4b2c32b82dde365107aa2aafdf (diff) | |
| download | rust-594685b5a2f35e2ff4fc01aca2ae91de92ed0993.tar.gz rust-594685b5a2f35e2ff4fc01aca2ae91de92ed0993.zip | |
`token::LArrow` can begin arguments
`<-` may indicate the start of a negative const argument.
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/const-generics/const-expression-parameter.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/const-generics/const-expression-parameter.stderr | 8 |
3 files changed, 4 insertions, 9 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index d46feeab335..2f7b6f9fa66 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2319,7 +2319,8 @@ impl<'a> Parser<'a> { let ident = self.parse_path_segment_ident()?; let is_args_start = |token: &token::Token| match *token { - token::Lt | token::BinOp(token::Shl) | token::OpenDelim(token::Paren) => true, + token::Lt | token::BinOp(token::Shl) | token::OpenDelim(token::Paren) + | token::LArrow => true, _ => false, }; let check_args_start = |this: &mut Self| { diff --git a/src/test/ui/const-generics/const-expression-parameter.rs b/src/test/ui/const-generics/const-expression-parameter.rs index 662c7b767ba..22c6c351622 100644 --- a/src/test/ui/const-generics/const-expression-parameter.rs +++ b/src/test/ui/const-generics/const-expression-parameter.rs @@ -6,7 +6,7 @@ fn i32_identity<const X: i32>() -> i32 { } fn foo_a() { - i32_identity::<-1>(); //~ ERROR expected identifier, found `<-` + i32_identity::<-1>(); // ok } fn foo_b() { diff --git a/src/test/ui/const-generics/const-expression-parameter.stderr b/src/test/ui/const-generics/const-expression-parameter.stderr index 2f7a80f0c8f..c255127c280 100644 --- a/src/test/ui/const-generics/const-expression-parameter.stderr +++ b/src/test/ui/const-generics/const-expression-parameter.stderr @@ -1,9 +1,3 @@ -error: expected identifier, found `<-` - --> $DIR/const-expression-parameter.rs:9:19 - | -LL | i32_identity::<-1>(); - | ^^ expected identifier - error: expected one of `,` or `>`, found `+` --> $DIR/const-expression-parameter.rs:13:22 | @@ -16,5 +10,5 @@ warning: the feature `const_generics` is incomplete and may cause the compiler t LL | #![feature(const_generics)] | ^^^^^^^^^^^^^^ -error: aborting due to 2 previous errors +error: aborting due to previous error |
