mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 22:41:50 +00:00
226edf64fa
Attribute values must be literals. The error you get when that doesn't hold is pretty bad, e.g.: ``` unexpected expression: 1 + 1 ``` You also get the same error if the attribute value is a literal, but an invalid literal, e.g.: ``` unexpected expression: "foo"suffix ``` This commit does two things. - Changes the error message to "attribute value must be a literal", which gives a better idea of what the problem is and how to fix it. It also no longer prints the invalid expression, because the carets below highlight it anyway. - Separates the "not a literal" case from the "invalid literal" case. Which means invalid literals now get the specific error at the literal level, rather than at the attribute level.
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
error: attribute value must be a literal
|
|
--> $DIR/issue-90873.rs:1:6
|
|
|
|
|
LL | #![u=||{static d=||1;}]
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: attribute value must be a literal
|
|
--> $DIR/issue-90873.rs:6:6
|
|
|
|
|
LL | #![a={impl std::ops::Neg for i8 {}}]
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: cannot find attribute `u` in this scope
|
|
--> $DIR/issue-90873.rs:1:4
|
|
|
|
|
LL | #![u=||{static d=||1;}]
|
|
| ^
|
|
|
|
error: cannot find attribute `a` in this scope
|
|
--> $DIR/issue-90873.rs:6:4
|
|
|
|
|
LL | #![a={impl std::ops::Neg for i8 {}}]
|
|
| ^
|
|
|
|
error[E0601]: `main` function not found in crate `issue_90873`
|
|
--> $DIR/issue-90873.rs:6:37
|
|
|
|
|
LL | #![a={impl std::ops::Neg for i8 {}}]
|
|
| ^ consider adding a `main` function to `$DIR/issue-90873.rs`
|
|
|
|
error: missing type for `static` item
|
|
--> $DIR/issue-90873.rs:1:17
|
|
|
|
|
LL | #![u=||{static d=||1;}]
|
|
| ^ help: provide a type for the item: `: <type>`
|
|
|
|
error: aborting due to 6 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0601`.
|