aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock4
-rw-r--r--crates/gen_lsp_server/Cargo.toml2
-rw-r--r--crates/ra_hir/src/ty/traits.rs33
3 files changed, 20 insertions, 19 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 02adbe0a9..d8ada0757 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -487,7 +487,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
487 487
488[[package]] 488[[package]]
489name = "gen_lsp_server" 489name = "gen_lsp_server"
490version = "0.1.0" 490version = "0.2.0"
491dependencies = [ 491dependencies = [
492 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", 492 "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
493 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 493 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1165,7 +1165,7 @@ dependencies = [
1165 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1165 "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1166 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1166 "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
1167 "flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", 1167 "flexi_logger 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)",
1168 "gen_lsp_server 0.1.0", 1168 "gen_lsp_server 0.2.0",
1169 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1169 "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
1170 "lsp-types 0.57.1 (registry+https://github.com/rust-lang/crates.io-index)", 1170 "lsp-types 0.57.1 (registry+https://github.com/rust-lang/crates.io-index)",
1171 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1171 "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/crates/gen_lsp_server/Cargo.toml b/crates/gen_lsp_server/Cargo.toml
index 34343e2f2..ba8bfdbd3 100644
--- a/crates/gen_lsp_server/Cargo.toml
+++ b/crates/gen_lsp_server/Cargo.toml
@@ -1,7 +1,7 @@
1[package] 1[package]
2edition = "2018" 2edition = "2018"
3name = "gen_lsp_server" 3name = "gen_lsp_server"
4version = "0.1.0" 4version = "0.2.0"
5authors = ["rust-analyzer developers"] 5authors = ["rust-analyzer developers"]
6repository = "https://github.com/rust-analyzer/rust-analyzer" 6repository = "https://github.com/rust-analyzer/rust-analyzer"
7license = "MIT OR Apache-2.0" 7license = "MIT OR Apache-2.0"
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 {