Open
Description
Someone may try to write code like this (playground):
#![allow(incomplete_features)]
#![feature(inline_const)]
fn foo() {
let x = 2;
match x {
const 2 => {}
}
}
Yet this produces these misleading errors:
Compiling playground v0.0.1 (/playground)
error: expected identifier, found keyword `const`
--> src/lib.rs:7:9
|
7 | const 2 => {}
| ^^^^^ expected identifier, found keyword
error: expected one of `=>`, `@`, `if`, or `|`, found `2`
--> src/lib.rs:7:15
|
7 | const 2 => {}
| ^ expected one of `=>`, `@`, `if`, or `|`
error: aborting due to 2 previous errors
error: could not compile `playground`
To learn more, run the command again with --verbose.
Another example (playground):
#![allow(incomplete_features)]
#![feature(inline_const)]
fn foo() {
let x = const 2;
}
Error:
Compiling playground v0.0.1 (/playground)
error: expected expression, found keyword `const`
--> src/lib.rs:5:13
|
5 | let x = const 2;
| ^^^^^ expected expression
error: aborting due to previous error
error: could not compile `playground`
To learn more, run the command again with --verbose.
Metadata
Metadata
Assignees
Labels
Area: Messages for errors, warnings, and lintsArea: The lexing & parsing of Rust source code to an ASTCategory: An issue proposing an enhancement or a PR with one.Diagnostics: Confusing error or lint that should be reworked.Inline constants (aka: const blocks, const expressions, anonymous constants)Relevant to the compiler team, which will review and decide on the PR/issue.