The current message for "`->` used for field access" is the following: ```rust error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `->` --> src/main.rs:2:6 | 2 | a->b; | ^^ expected one of 8 possible tokens ``` (playground link[1]) This PR tries to address this by adding a dedicated error message and recovery. The proposed error message is: ``` error: `->` used for field access or method call --> ./tiny_test.rs:2:6 | 2 | a->b; | ^^ help: try using `.` instead | = help: the `.` operator will dereference the value if needed ``` (feel free to bikeshed it as much as necessary) [1]: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=7f8b6f4433aa7866124123575456f54e Signed-off-by: Sasha Pourcelot <sasha.pourcelot@protonmail.com>
52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
error: expected `;`, found `#`
|
|
--> $DIR/issue-118530-ice.rs:3:21
|
|
|
|
|
LL | #[cfg]
|
|
| ------ only `;` terminated statements or tail expressions are allowed after this attribute
|
|
LL | [1, 2, 3].iter()
|
|
| ^ expected `;` here
|
|
LL | #[feature]
|
|
| - unexpected token
|
|
|
|
|
help: add `;` here
|
|
|
|
|
LL | [1, 2, 3].iter();
|
|
| +
|
|
help: alternatively, consider surrounding the expression with a block
|
|
|
|
|
LL | { [1, 2, 3].iter() }
|
|
| + +
|
|
|
|
error: expected identifier, found keyword `fn`
|
|
--> $DIR/issue-118530-ice.rs:5:11
|
|
|
|
|
LL | attr::fn bar() -> String {
|
|
| ^^ expected identifier, found keyword
|
|
|
|
error: expected `;`, found `bar`
|
|
--> $DIR/issue-118530-ice.rs:5:13
|
|
|
|
|
LL | #[feature]
|
|
| ---------- only `;` terminated statements or tail expressions are allowed after this attribute
|
|
LL | attr::fn bar() -> String {
|
|
| ^--- unexpected token
|
|
| |
|
|
| help: add `;` here
|
|
|
|
error: `->` used for field access or method call
|
|
--> $DIR/issue-118530-ice.rs:5:20
|
|
|
|
|
LL | attr::fn bar() -> String {
|
|
| ^^ help: try using `.` instead
|
|
|
|
|
= help: the `.` operator will dereference the value if needed
|
|
|
|
error: expected one of `(`, `.`, `::`, `;`, `?`, `}`, or an operator, found `{`
|
|
--> $DIR/issue-118530-ice.rs:5:30
|
|
|
|
|
LL | attr::fn bar() -> String {
|
|
| ^ expected one of 7 possible tokens
|
|
|
|
error: aborting due to 5 previous errors
|
|
|