diff options
author | Florian Diebold <[email protected]> | 2019-08-23 16:19:37 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-09-03 13:00:35 +0100 |
commit | 741e350d4b7c3561f242207541ac9d7cab6ce45f (patch) | |
tree | 8ab45d1f2491395eba0e6f938eddc65f15d2667d /crates/ra_hir/src/ty/traits | |
parent | 966ab9abd2253e68d2e410a58dc1328805ee7f61 (diff) |
Add support for associated type bindings (`where Trait<Type = X>`)
Diffstat (limited to 'crates/ra_hir/src/ty/traits')
-rw-r--r-- | crates/ra_hir/src/ty/traits/chalk.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/traits/chalk.rs b/crates/ra_hir/src/ty/traits/chalk.rs index 2ebc06135..3ab5b7cca 100644 --- a/crates/ra_hir/src/ty/traits/chalk.rs +++ b/crates/ra_hir/src/ty/traits/chalk.rs | |||
@@ -211,6 +211,13 @@ impl ToChalk for GenericPredicate { | |||
211 | GenericPredicate::Implemented(trait_ref) => { | 211 | GenericPredicate::Implemented(trait_ref) => { |
212 | make_binders(chalk_ir::WhereClause::Implemented(trait_ref.to_chalk(db)), 0) | 212 | make_binders(chalk_ir::WhereClause::Implemented(trait_ref.to_chalk(db)), 0) |
213 | } | 213 | } |
214 | GenericPredicate::Projection(projection_pred) => make_binders( | ||
215 | chalk_ir::WhereClause::ProjectionEq(chalk_ir::ProjectionEq { | ||
216 | projection: projection_pred.projection_ty.to_chalk(db), | ||
217 | ty: projection_pred.ty.to_chalk(db), | ||
218 | }), | ||
219 | 0, | ||
220 | ), | ||
214 | GenericPredicate::Error => { | 221 | GenericPredicate::Error => { |
215 | let impossible_trait_ref = chalk_ir::TraitRef { | 222 | let impossible_trait_ref = chalk_ir::TraitRef { |
216 | trait_id: UNKNOWN_TRAIT, | 223 | trait_id: UNKNOWN_TRAIT, |