aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/traits.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/ty/traits.rs')
-rw-r--r--crates/ra_hir/src/ty/traits.rs15
1 files changed, 2 insertions, 13 deletions
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs
index e0c93550a..01f350bc1 100644
--- a/crates/ra_hir/src/ty/traits.rs
+++ b/crates/ra_hir/src/ty/traits.rs
@@ -134,20 +134,9 @@ pub(crate) fn implements_query(
134pub(crate) fn normalize_query( 134pub(crate) fn normalize_query(
135 db: &impl HirDatabase, 135 db: &impl HirDatabase,
136 krate: Crate, 136 krate: Crate,
137 projection: Canonical<ProjectionPredicate>, 137 projection: Canonical<InEnvironment<ProjectionPredicate>>,
138) -> Option<Solution> { 138) -> Option<Solution> {
139 let goal: chalk_ir::Goal = chalk_ir::Normalize { 139 let canonical = projection.to_chalk(db).cast();
140 projection: projection.value.projection_ty.to_chalk(db),
141 ty: projection.value.ty.to_chalk(db),
142 }
143 .cast();
144 debug!("goal: {:?}", goal);
145 // FIXME unify with `implements`
146 let env = chalk_ir::Environment::new();
147 let in_env = chalk_ir::InEnvironment::new(&env, goal);
148 let parameter = chalk_ir::ParameterKind::Ty(chalk_ir::UniverseIndex::ROOT);
149 let canonical =
150 chalk_ir::Canonical { value: in_env, binders: vec![parameter; projection.num_vars] };
151 // We currently don't deal with universes (I think / hope they're not yet 140 // We currently don't deal with universes (I think / hope they're not yet
152 // relevant for our use cases?) 141 // relevant for our use cases?)
153 let u_canonical = chalk_ir::UCanonical { canonical, universes: 1 }; 142 let u_canonical = chalk_ir::UCanonical { canonical, universes: 1 };