Skip to content

E0023 should have smaller, more targeted spans #86307

Closed
@estebank

Description

@estebank

Currently, when a tuple pattern has a different number of fields than a tuple variant, the output is like the following:

error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has 1 field
   --> compiler/rustc_middle/src/ty/print/pretty.rs:634:27
    |
634 |                         | ty::PredicateKind::ImplicitSizedTrait(pred, _) =
    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 field, found 2
    | 
   ::: compiler/rustc_middle/src/ty/mod.rs:440:5
    |
440 |     ImplicitSizedTrait(TraitPredicate<'tcx>),
    |     ---------------------------------------- tuple variant defined here

Ideally, the primary span would be for the individual fields, with a secondary span pointing at the pattern path. As a stretch goal, when pointing at the definition we'd point at the fields in the same way, instead of the whole variant (but this isn't absolutely necessary).

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsC-enhancementCategory: An issue proposing an enhancement or a PR with one.D-papercutDiagnostics: An error or lint that needs small tweaks.P-lowLow priorityT-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