Skip to content

Suggest joining two identifiers if the grammer is invalid and they would form a keyword #89640

@Noratrieb

Description

@Noratrieb
Member

Given the following code: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=9adebfa3cae4c99b1fa5c0c9f25e154a

fn main() {
    l et x = 5;
}

The current output is:

error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `et`
 --> src/main.rs:2:7
  |
2 |     l et x = 5;
  |       ^^ expected one of 8 possible tokens

Ideally the output should look like:

error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `et`
 --> src/main.rs:2:7
  |
2 |     l et x = 5;
  |       ^^ expected one of 8 possible tokens

     hint: did you accidentally put a space inside the keyword `let`?

Sometimes you accidentally insert whitespace inside a keyword, and might not notice it immediately. This minimal case is pretty obvious, but it might not actually always be that obvious if a lot is going on.

This could even be extended to cover all names in scope.

Activity

added
A-diagnosticsArea: Messages for errors, warnings, and lints
T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
on Oct 7, 2021
camelid

camelid commented on Jan 25, 2022

@camelid
Member

Why did you close this issue? I think it's a good idea.

Noratrieb

Noratrieb commented on Jan 26, 2022

@Noratrieb
MemberAuthor

I don't think there's any value to implement it, since the mistake is always obvious, but I can reopen it if you'd like

camelid

camelid commented on Jan 26, 2022

@camelid
Member

I think it's still worthwhile because people can sometimes get confused in the moment, especially if macros are involved.

self-assigned this
on Jul 3, 2023
added a commit that references this issue on Jul 4, 2023
4dbc7e3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    Participants

    @chenyukang@camelid@Noratrieb

    Issue actions

      Suggest joining two identifiers if the grammer is invalid and they would form a keyword · Issue #89640 · rust-lang/rust