Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/infer/pat.rs')
-rw-r--r--crates/hir-ty/src/infer/pat.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/hir-ty/src/infer/pat.rs b/crates/hir-ty/src/infer/pat.rs
index 707bec0fce..16489e3068 100644
--- a/crates/hir-ty/src/infer/pat.rs
+++ b/crates/hir-ty/src/infer/pat.rs
@@ -190,7 +190,7 @@ impl InferenceContext<'_> {
subs: &[PatId],
decl: Option<DeclContext>,
) -> Ty {
- let expected = self.resolve_ty_shallow(expected);
+ let expected = self.table.structurally_resolve_type(expected);
let expectations = match expected.as_tuple() {
Some(parameters) => parameters.as_slice(Interner),
_ => &[],
@@ -238,7 +238,7 @@ impl InferenceContext<'_> {
mut default_bm: BindingMode,
decl: Option<DeclContext>,
) -> Ty {
- let mut expected = self.resolve_ty_shallow(expected);
+ let mut expected = self.table.structurally_resolve_type(expected);
if matches!(&self.body[pat], Pat::Ref { .. }) || self.inside_assignment {
cov_mark::hit!(match_ergonomics_ref);
@@ -251,7 +251,7 @@ impl InferenceContext<'_> {
let mut pat_adjustments = Vec::new();
while let Some((inner, _lifetime, mutability)) = expected.as_reference() {
pat_adjustments.push(expected.clone());
- expected = self.resolve_ty_shallow(inner);
+ expected = self.table.structurally_resolve_type(inner);
default_bm = match default_bm {
BindingMode::Move => BindingMode::Ref(mutability),
BindingMode::Ref(Mutability::Not) => BindingMode::Ref(Mutability::Not),
@@ -494,7 +494,7 @@ impl InferenceContext<'_> {
default_bm: BindingMode,
decl: Option<DeclContext>,
) -> Ty {
- let expected = self.resolve_ty_shallow(expected);
+ let expected = self.table.structurally_resolve_type(expected);
// If `expected` is an infer ty, we try to equate it to an array if the given pattern
// allows it. See issue #16609
@@ -506,7 +506,7 @@ impl InferenceContext<'_> {
self.unify(&expected, &resolved_array_ty);
}
- let expected = self.resolve_ty_shallow(&expected);
+ let expected = self.table.structurally_resolve_type(&expected);
let elem_ty = match expected.kind(Interner) {
TyKind::Array(st, _) | TyKind::Slice(st) => st.clone(),
_ => self.err_ty(),
@@ -542,7 +542,7 @@ impl InferenceContext<'_> {
if let Expr::Literal(Literal::ByteString(_)) = self.body[expr]
&& let Some((inner, ..)) = expected.as_reference()
{
- let inner = self.resolve_ty_shallow(inner);
+ let inner = self.table.structurally_resolve_type(inner);
if matches!(inner.kind(Interner), TyKind::Slice(_)) {
let elem_ty = TyKind::Scalar(Scalar::Uint(UintTy::U8)).intern(Interner);
let slice_ty = TyKind::Slice(elem_ty).intern(Interner);