diff options
Diffstat (limited to 'crates/hir_ty/src/traits.rs')
-rw-r--r-- | crates/hir_ty/src/traits.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/hir_ty/src/traits.rs b/crates/hir_ty/src/traits.rs index 27f350f70..500d1781c 100644 --- a/crates/hir_ty/src/traits.rs +++ b/crates/hir_ty/src/traits.rs | |||
@@ -10,7 +10,9 @@ use stdx::panic_context; | |||
10 | 10 | ||
11 | use crate::{db::HirDatabase, DebruijnIndex, Substs}; | 11 | use crate::{db::HirDatabase, DebruijnIndex, Substs}; |
12 | 12 | ||
13 | use super::{Canonical, GenericPredicate, HirDisplay, ProjectionTy, TraitRef, Ty, TypeWalk}; | 13 | use super::{ |
14 | Canonical, GenericPredicate, HirDisplay, ProjectionTy, TraitRef, Ty, TyKind, TypeWalk, | ||
15 | }; | ||
14 | 16 | ||
15 | use self::chalk::{from_chalk, Interner, ToChalk}; | 17 | use self::chalk::{from_chalk, Interner, ToChalk}; |
16 | 18 | ||
@@ -132,7 +134,7 @@ pub(crate) fn trait_solve_query( | |||
132 | log::info!("trait_solve_query({})", goal.value.value.display(db)); | 134 | log::info!("trait_solve_query({})", goal.value.value.display(db)); |
133 | 135 | ||
134 | if let Obligation::Projection(pred) = &goal.value.value { | 136 | if let Obligation::Projection(pred) = &goal.value.value { |
135 | if let Ty::BoundVar(_) = &pred.projection_ty.parameters[0] { | 137 | if let TyKind::BoundVar(_) = &pred.projection_ty.parameters[0].interned(&Interner) { |
136 | // Hack: don't ask Chalk to normalize with an unknown self type, it'll say that's impossible | 138 | // Hack: don't ask Chalk to normalize with an unknown self type, it'll say that's impossible |
137 | return Some(Solution::Ambig(Guidance::Unknown)); | 139 | return Some(Solution::Ambig(Guidance::Unknown)); |
138 | } | 140 | } |