From: Takayuki Maeda Date: Mon, 28 Mar 2022 04:43:33 +0000 (+0900) Subject: use `can_coerce` instead of `same_type_modulo_infer` X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=c26cfd1c5347091eb72c545b71c682f972cec1f1;p=rust.git use `can_coerce` instead of `same_type_modulo_infer` --- diff --git a/compiler/rustc_typeck/src/check/pat.rs b/compiler/rustc_typeck/src/check/pat.rs index 67124f2d238..d66230acb8b 100644 --- a/compiler/rustc_typeck/src/check/pat.rs +++ b/compiler/rustc_typeck/src/check/pat.rs @@ -10,7 +10,6 @@ use rustc_hir::pat_util::EnumerateAndAdjustIterator; use rustc_hir::{HirId, Pat, PatKind}; use rustc_infer::infer; -use rustc_infer::infer::error_reporting::same_type_modulo_infer; use rustc_infer::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind}; use rustc_middle::middle::stability::EvalResult; use rustc_middle::ty::{self, Adt, BindingMode, Ty, TypeFoldable}; @@ -1518,7 +1517,7 @@ fn error_inexistent_fields( } else if inexistent_fields.len() == 1 { match pat_field.pat.kind { PatKind::Lit(expr) - if !same_type_modulo_infer( + if !self.can_coerce( self.typeck_results.borrow().expr_ty(expr), self.field_ty( unmentioned_fields[0].1.span, diff --git a/src/test/ui/issues/issue-51102.stderr b/src/test/ui/issues/issue-51102.stderr index eb9eb680200..09c52292dcc 100644 --- a/src/test/ui/issues/issue-51102.stderr +++ b/src/test/ui/issues/issue-51102.stderr @@ -2,7 +2,10 @@ error[E0026]: struct `SimpleStruct` does not have a field named `state` --> $DIR/issue-51102.rs:13:17 | LL | state: 0, - | ^^^^^ struct `SimpleStruct` does not have this field + | ^^^^^ + | | + | struct `SimpleStruct` does not have this field + | help: `SimpleStruct` has a field named `no_state_here` error[E0025]: field `no_state_here` bound multiple times in the pattern --> $DIR/issue-51102.rs:24:17