diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-03-18 20:54:24 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-03-18 20:54:24 +0000 |
commit | 5e82d3172282e159e539569b80b3135c17b972f0 (patch) | |
tree | a2ad2b6faf8c708fc593546df64d489c117b61f2 /crates/hir_ty/src/infer/path.rs | |
parent | b70bea0d7994cbe7b1e01e6b2e0f4ab3ac2c6fd5 (diff) | |
parent | 7a7e47eab7323a8e122d9994b2936e50e42a1af2 (diff) |
Merge #8096
8096: Chalkify TraitRef r=flodiebold a=flodiebold
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/hir_ty/src/infer/path.rs')
-rw-r--r-- | crates/hir_ty/src/infer/path.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crates/hir_ty/src/infer/path.rs b/crates/hir_ty/src/infer/path.rs index ea01d6238..e15135fc1 100644 --- a/crates/hir_ty/src/infer/path.rs +++ b/crates/hir_ty/src/infer/path.rs | |||
@@ -9,7 +9,9 @@ use hir_def::{ | |||
9 | }; | 9 | }; |
10 | use hir_expand::name::Name; | 10 | use hir_expand::name::Name; |
11 | 11 | ||
12 | use crate::{method_resolution, Interner, Substitution, Ty, TyKind, ValueTyDefId}; | 12 | use crate::{ |
13 | method_resolution, to_chalk_trait_id, Interner, Substitution, Ty, TyKind, ValueTyDefId, | ||
14 | }; | ||
13 | 15 | ||
14 | use super::{ExprOrPatId, InferenceContext, TraitRef}; | 16 | use super::{ExprOrPatId, InferenceContext, TraitRef}; |
15 | 17 | ||
@@ -165,7 +167,7 @@ impl<'a> InferenceContext<'a> { | |||
165 | segment: PathSegment<'_>, | 167 | segment: PathSegment<'_>, |
166 | id: ExprOrPatId, | 168 | id: ExprOrPatId, |
167 | ) -> Option<(ValueNs, Option<Substitution>)> { | 169 | ) -> Option<(ValueNs, Option<Substitution>)> { |
168 | let trait_ = trait_ref.trait_; | 170 | let trait_ = trait_ref.hir_trait_id(); |
169 | let item = | 171 | let item = |
170 | self.db.trait_data(trait_).items.iter().map(|(_name, id)| (*id)).find_map(|item| { | 172 | self.db.trait_data(trait_).items.iter().map(|(_name, id)| (*id)).find_map(|item| { |
171 | match item { | 173 | match item { |
@@ -200,7 +202,7 @@ impl<'a> InferenceContext<'a> { | |||
200 | }; | 202 | }; |
201 | 203 | ||
202 | self.write_assoc_resolution(id, item); | 204 | self.write_assoc_resolution(id, item); |
203 | Some((def, Some(trait_ref.substs))) | 205 | Some((def, Some(trait_ref.substitution))) |
204 | } | 206 | } |
205 | 207 | ||
206 | fn resolve_ty_assoc_item( | 208 | fn resolve_ty_assoc_item( |
@@ -255,8 +257,8 @@ impl<'a> InferenceContext<'a> { | |||
255 | .fill(std::iter::repeat_with(|| self.table.new_type_var())) | 257 | .fill(std::iter::repeat_with(|| self.table.new_type_var())) |
256 | .build(); | 258 | .build(); |
257 | self.obligations.push(super::Obligation::Trait(TraitRef { | 259 | self.obligations.push(super::Obligation::Trait(TraitRef { |
258 | trait_, | 260 | trait_id: to_chalk_trait_id(trait_), |
259 | substs: trait_substs.clone(), | 261 | substitution: trait_substs.clone(), |
260 | })); | 262 | })); |
261 | Some(trait_substs) | 263 | Some(trait_substs) |
262 | } | 264 | } |