Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/autoderef.rs')
-rw-r--r--crates/hir-ty/src/autoderef.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/hir-ty/src/autoderef.rs b/crates/hir-ty/src/autoderef.rs
index 4ea0156e12..82696a5c94 100644
--- a/crates/hir-ty/src/autoderef.rs
+++ b/crates/hir-ty/src/autoderef.rs
@@ -13,7 +13,7 @@ use triomphe::Arc;
use crate::{
Canonical, Goal, Interner, ProjectionTyExt, TraitEnvironment, Ty, TyBuilder, TyKind,
- db::HirDatabase, infer::unify::InferenceTable,
+ db::HirDatabase, infer::unify::InferenceTable, next_solver::mapping::ChalkToNextSolver,
};
const AUTODEREF_RECURSION_LIMIT: usize = 20;
@@ -98,7 +98,7 @@ impl<'table, 'db> Autoderef<'table, 'db> {
explicit: bool,
use_receiver_trait: bool,
) -> Self {
- let ty = table.resolve_ty_shallow(&ty);
+ let ty = table.structurally_resolve_type(&ty);
Autoderef { table, ty, at_start: true, steps: Vec::new(), explicit, use_receiver_trait }
}
@@ -114,7 +114,7 @@ impl<'table, 'db> Autoderef<'table, 'db, usize> {
explicit: bool,
use_receiver_trait: bool,
) -> Self {
- let ty = table.resolve_ty_shallow(&ty);
+ let ty = table.structurally_resolve_type(&ty);
Autoderef { table, ty, at_start: true, steps: 0, explicit, use_receiver_trait }
}
}
@@ -160,7 +160,7 @@ pub(crate) fn autoderef_step(
use_receiver_trait: bool,
) -> Option<(AutoderefKind, Ty)> {
if let Some(derefed) = builtin_deref(table.db, &ty, explicit) {
- Some((AutoderefKind::Builtin, table.resolve_ty_shallow(derefed)))
+ Some((AutoderefKind::Builtin, table.structurally_resolve_type(derefed)))
} else {
Some((AutoderefKind::Overloaded, deref_by_trait(table, ty, use_receiver_trait)?))
}
@@ -187,7 +187,7 @@ pub(crate) fn deref_by_trait(
use_receiver_trait: bool,
) -> Option<Ty> {
let _p = tracing::info_span!("deref_by_trait").entered();
- if table.resolve_ty_shallow(&ty).inference_var(Interner).is_some() {
+ if table.structurally_resolve_type(&ty).inference_var(Interner).is_some() {
// don't try to deref unknown variables
return None;
}
@@ -229,8 +229,8 @@ pub(crate) fn deref_by_trait(
return None;
}
- table.register_obligation(implements_goal);
+ table.register_obligation(implements_goal.to_nextsolver(table.interner));
let result = table.normalize_projection_ty(projection);
- Some(table.resolve_ty_shallow(&result))
+ Some(table.structurally_resolve_type(&result))
}