Code
fn main() {
let _ = c"foo";
}
Current output
error: expected one of `!`, `.`, `::`, `;`, `?`, `else`, `{`, or an operator, found `"foo"`
--> src/main.rs:2:14
|
2 | let _ = c"foo";
| ^^^^^ expected one of 8 possible tokens
error: could not compile `foo` (bin "foo") due to 1 previous error
Desired output
error: c-string literals are not supported in Rust 2018
--> src/main.rs:2:14
|
2 | let _ = c"foo";
| ^^^^^^ to use c-string literals, switch to Rust 2021 or later
|
= help: set `edition = "2021"` in `Cargo.toml`
= note: for more on editions, read https://doc.rust-lang.org/edition-guide
Rationale and extra context
c-string literals are only supported in the 2021 edition or newer. Attempts to use them in older editions may cause confusion.
I realize this may be difficult to implement since it needs to be careful to not assume that c followed by " is invalid due to macros. But perhaps it may not be too difficult.
Other cases
No response
Anything else?
rustc 1.76.0-nightly (0e2dac837 2023-12-04)
binary: rustc
commit-hash: 0e2dac8375950a12812ec65868e42b43ed214ef9
commit-date: 2023-12-04
host: aarch64-apple-darwin
release: 1.76.0-nightly
LLVM version: 17.0.5
Code
Current output
Desired output
Rationale and extra context
c-string literals are only supported in the 2021 edition or newer. Attempts to use them in older editions may cause confusion.
I realize this may be difficult to implement since it needs to be careful to not assume that
cfollowed by"is invalid due to macros. But perhaps it may not be too difficult.Other cases
No response
Anything else?