Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed: Multiple errors on single typo in match pattern #55156

Merged
merged 1 commit into from
Oct 20, 2018

Commits on Oct 19, 2018

  1. Fixed: Multiple errors on single typo in match pattern

    Here we have fixed the case where we were throwing two diagnostic
    messages `E0026` and `E0027` for same case like this
    
    Example
    error[E0026]: variant `A::A` does not have a field named `fob`
      --> src/test/ui/issue-52717.rs:20:12
       |
    20 |     A::A { fob } => { println!("{}", fob); }
       |            ^^^ variant `A::A` does not have this field
    
    error[E0027]: pattern does not mention field `foo`
      --> src/test/ui/issue-52717.rs:20:5
       |
    20 |     A::A { fob } => { println!("{}", fob); }
       |     ^^^^^^^^^^^^ missing field `foo`
    
    error: aborting due to 2 previous errors
    
    Here above we can see that both `E0026` and `E0027` are depicting
    same thing.
    
    So, to fix this issue, we are simply checking element of
    `inexistent_fields` is there any value lies in
    `unmentioned_fields` using Levenshtein algorithm, if does
    then for that case we are simply deleting element from
    `unmentioned_fields`. More or less now instead of showing
    separate message in `E0027` we are giving extra hint on `E0026`
    
    Address: rust-lang#52717
    PramodBisht committed Oct 19, 2018
    Configuration menu
    Copy the full SHA
    978dc3d View commit details
    Browse the repository at this point in the history