]> git.lizzy.rs Git - rust.git/commitdiff
Handle projection types from Chalk
authorFlorian Diebold <flodiebold@gmail.com>
Sun, 22 Sep 2019 18:08:46 +0000 (20:08 +0200)
committerFlorian Diebold <flodiebold@gmail.com>
Sun, 22 Sep 2019 18:08:46 +0000 (20:08 +0200)
crates/ra_hir/src/ty/traits/chalk.rs

index 693d9b28fd661789a599439a0de4929e5b57e151..cfecf75ee62e61f0ea4317d2c48b66bb10175d1a 100644 (file)
@@ -104,7 +104,11 @@ fn from_chalk(db: &impl HirDatabase, chalk: chalk_ir::Ty) -> Self {
                     }
                 }
             }
-            chalk_ir::Ty::Projection(_) => unimplemented!(),
+            chalk_ir::Ty::Projection(proj) => {
+                let associated_ty = from_chalk(db, proj.associated_ty_id);
+                let parameters = from_chalk(db, proj.parameters);
+                Ty::Projection(ProjectionTy { associated_ty, parameters })
+            }
             chalk_ir::Ty::ForAll(_) => unimplemented!(),
             chalk_ir::Ty::BoundVar(idx) => Ty::Bound(idx as u32),
             chalk_ir::Ty::InferenceVar(_iv) => panic!("unexpected chalk infer ty"),