Skip to content

When field isn't found, see if any of the available fields has it #81220

Closed
@estebank

Description

@estebank

I just encountered this output:

error[E0609]: no field `span` on type `Label`
   --> compiler/rustc_passes/src/loops.rs:127:43
    |
127 | ...                   label.span,
    |                             ^^^^ unknown field
    |
    = note: available fields are: `ident`

We currently mention available fields when the field used isn't found. It would be nice if we peeked at the types for the available fields to see if any of them has any fields (including through deref) of the name we originally wanted. In this case, I would love to see the following output:

error[E0609]: no field `span` on type `Label`
   --> compiler/rustc_passes/src/loops.rs:127:43
    |
127 | ...                   label.span,
    |                             ^^^^ unknown field
    |
help: the field `span` is available on field `ident` of type `Ident`:
    |
127 | ...                   label.ident.span,
    |                             ^^^^^^
    |

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsA-suggestion-diagnosticsArea: Suggestions generated by the compiler applied by `cargo fix`D-papercutDiagnostics: An error or lint that needs small tweaks.T-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

    No branches or pull requests

    Issue actions