1
Fork 0

token::LArrow can begin arguments

`<-` may indicate the start of a negative const argument.
This commit is contained in:
varkor 2019-05-06 17:00:01 +01:00
parent 7ac02005f3
commit 594685b5a2
3 changed files with 4 additions and 9 deletions

View file

@ -2319,7 +2319,8 @@ impl<'a> Parser<'a> {
let ident = self.parse_path_segment_ident()?; let ident = self.parse_path_segment_ident()?;
let is_args_start = |token: &token::Token| match *token { 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, _ => false,
}; };
let check_args_start = |this: &mut Self| { let check_args_start = |this: &mut Self| {

View file

@ -6,7 +6,7 @@ fn i32_identity<const X: i32>() -> i32 {
} }
fn foo_a() { fn foo_a() {
i32_identity::<-1>(); //~ ERROR expected identifier, found `<-` i32_identity::<-1>(); // ok
} }
fn foo_b() { fn foo_b() {

View file

@ -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 `+` error: expected one of `,` or `>`, found `+`
--> $DIR/const-expression-parameter.rs:13:22 --> $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)] LL | #![feature(const_generics)]
| ^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^
error: aborting due to 2 previous errors error: aborting due to previous error