aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/traits.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-05-01 16:57:56 +0100
committerFlorian Diebold <[email protected]>2019-05-04 17:18:30 +0100
commit0ad7317b24dc90c3787482f9ec563e7830d499fc (patch)
treeb065393029bb8d886c3562af2e0fbcf1bc62a0e6 /crates/ra_hir/src/ty/traits.rs
parentef77d8375130d12678d4b2316cc1708c90349dad (diff)
Canonicalize before doing method resolution
Diffstat (limited to 'crates/ra_hir/src/ty/traits.rs')
-rw-r--r--crates/ra_hir/src/ty/traits.rs7
1 files changed, 2 insertions, 5 deletions
diff --git a/crates/ra_hir/src/ty/traits.rs b/crates/ra_hir/src/ty/traits.rs
index ac31ca2f6..c707110ad 100644
--- a/crates/ra_hir/src/ty/traits.rs
+++ b/crates/ra_hir/src/ty/traits.rs
@@ -4,7 +4,7 @@ use std::sync::{Arc, Mutex};
4use chalk_ir::cast::Cast; 4use chalk_ir::cast::Cast;
5 5
6use crate::{Crate, Trait, db::HirDatabase, ImplBlock}; 6use crate::{Crate, Trait, db::HirDatabase, ImplBlock};
7use super::{TraitRef, Ty, infer::Canonical}; 7use super::{TraitRef, Ty, Canonical};
8 8
9use self::chalk::{ToChalk, from_chalk}; 9use self::chalk::{ToChalk, from_chalk};
10 10
@@ -86,10 +86,7 @@ pub(crate) fn implements(
86 solution.map(|solution| solution_from_chalk(db, solution)) 86 solution.map(|solution| solution_from_chalk(db, solution))
87} 87}
88 88
89fn solution_from_chalk( 89fn solution_from_chalk(db: &impl HirDatabase, solution: chalk_solve::Solution) -> Solution {
90 db: &impl HirDatabase,
91 solution: chalk_solve::Solution,
92) -> Solution {
93 let convert_subst = |subst: chalk_ir::Canonical<chalk_ir::Substitution>| { 90 let convert_subst = |subst: chalk_ir::Canonical<chalk_ir::Substitution>| {
94 let value = subst 91 let value = subst
95 .value 92 .value