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.rs33
1 files changed, 17 insertions, 16 deletions
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs
index f39749cab..908c00209 100644
--- a/crates/ra_hir/src/ty/traits.rs
+++ b/crates/ra_hir/src/ty/traits.rs
@@ -78,23 +78,24 @@ pub enum Obligation {
78 78
79/// Check using Chalk whether trait is implemented for given parameters including `Self` type. 79/// Check using Chalk whether trait is implemented for given parameters including `Self` type.
80pub(crate) fn implements_query( 80pub(crate) fn implements_query(
81 db: &impl HirDatabase, 81 _db: &impl HirDatabase,
82 krate: Crate, 82 _krate: Crate,
83 trait_ref: Canonical<TraitRef>, 83 _trait_ref: Canonical<TraitRef>,
84) -> Option<Solution> { 84) -> Option<Solution> {
85 let _p = profile("implements_query"); 85 return None;
86 let goal: chalk_ir::Goal = trait_ref.value.to_chalk(db).cast(); 86 // let _p = profile("implements_query");
87 debug!("goal: {:?}", goal); 87 // let goal: chalk_ir::Goal = trait_ref.value.to_chalk(db).cast();
88 let env = chalk_ir::Environment::new(); 88 // debug!("goal: {:?}", goal);
89 let in_env = chalk_ir::InEnvironment::new(&env, goal); 89 // let env = chalk_ir::Environment::new();
90 let parameter = chalk_ir::ParameterKind::Ty(chalk_ir::UniverseIndex::ROOT); 90 // let in_env = chalk_ir::InEnvironment::new(&env, goal);
91 let canonical = 91 // let parameter = chalk_ir::ParameterKind::Ty(chalk_ir::UniverseIndex::ROOT);
92 chalk_ir::Canonical { value: in_env, binders: vec![parameter; trait_ref.num_vars] }; 92 // let canonical =
93 // We currently don't deal with universes (I think / hope they're not yet 93 // chalk_ir::Canonical { value: in_env, binders: vec![parameter; trait_ref.num_vars] };
94 // relevant for our use cases?) 94 // // We currently don't deal with universes (I think / hope they're not yet
95 let u_canonical = chalk_ir::UCanonical { canonical, universes: 1 }; 95 // // relevant for our use cases?)
96 let solution = solve(db, krate, &u_canonical); 96 // let u_canonical = chalk_ir::UCanonical { canonical, universes: 1 };
97 solution.map(|solution| solution_from_chalk(db, solution)) 97 // let solution = solve(db, krate, &u_canonical);
98 // solution.map(|solution| solution_from_chalk(db, solution))
98} 99}
99 100
100fn solution_from_chalk(db: &impl HirDatabase, solution: chalk_solve::Solution) -> Solution { 101fn solution_from_chalk(db: &impl HirDatabase, solution: chalk_solve::Solution) -> Solution {