1
Fork 0

Ensure that we don't try to access fields on a non-struct pattern type in diagnostic

Fix #135209.
This commit is contained in:
Esteban Küber 2025-01-07 22:06:58 +00:00
parent ad211ced81
commit 5f04f98c9a
3 changed files with 38 additions and 1 deletions

View file

@ -1130,7 +1130,9 @@ impl<'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
let None = following_seg else { return };
for rib in self.ribs[ValueNS].iter().rev() {
for (def_id, spans) in &rib.patterns_with_skipped_bindings {
if let Some(fields) = self.r.field_idents(*def_id) {
if let DefKind::Struct = self.r.tcx.def_kind(*def_id)
&& let Some(fields) = self.r.field_idents(*def_id)
{
for field in fields {
if field.name == segment.ident.name {
if spans.iter().all(|(_, had_error)| had_error.is_err()) {