diff options
Diffstat (limited to 'crates/ra_hir_ty/src/traits/chalk/mapping.rs')
-rw-r--r-- | crates/ra_hir_ty/src/traits/chalk/mapping.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/crates/ra_hir_ty/src/traits/chalk/mapping.rs b/crates/ra_hir_ty/src/traits/chalk/mapping.rs index 796947e69..a852ce2ac 100644 --- a/crates/ra_hir_ty/src/traits/chalk/mapping.rs +++ b/crates/ra_hir_ty/src/traits/chalk/mapping.rs | |||
@@ -316,20 +316,19 @@ impl ToChalk for TypeCtor { | |||
316 | TypeName::Closure(closure_id.into()) | 316 | TypeName::Closure(closure_id.into()) |
317 | } | 317 | } |
318 | 318 | ||
319 | TypeCtor::FnPtr { .. } => panic!("Trying to convert FnPtr to TypeName"), | 319 | TypeCtor::Adt(adt_id) => TypeName::Adt(chalk_ir::AdtId(adt_id)), |
320 | 320 | ||
321 | TypeCtor::Adt(_) => { | 321 | TypeCtor::FnPtr { .. } => { |
322 | // FIXME no interning needed anymore | 322 | // This should not be reached, since Chalk doesn't represent |
323 | // other TypeCtors get interned and turned into a chalk StructId | 323 | // function pointers with TypeName |
324 | let struct_id = db.intern_type_ctor(self).into(); | 324 | unreachable!() |
325 | TypeName::Adt(struct_id) | ||
326 | } | 325 | } |
327 | } | 326 | } |
328 | } | 327 | } |
329 | 328 | ||
330 | fn from_chalk(db: &dyn HirDatabase, type_name: TypeName<Interner>) -> TypeCtor { | 329 | fn from_chalk(db: &dyn HirDatabase, type_name: TypeName<Interner>) -> TypeCtor { |
331 | match type_name { | 330 | match type_name { |
332 | TypeName::Adt(struct_id) => db.lookup_intern_type_ctor(struct_id.into()), | 331 | TypeName::Adt(struct_id) => TypeCtor::Adt(struct_id.0), |
333 | TypeName::AssociatedType(type_id) => TypeCtor::AssociatedType(from_chalk(db, type_id)), | 332 | TypeName::AssociatedType(type_id) => TypeCtor::AssociatedType(from_chalk(db, type_id)), |
334 | TypeName::OpaqueType(opaque_type_id) => { | 333 | TypeName::OpaqueType(opaque_type_id) => { |
335 | TypeCtor::OpaqueType(from_chalk(db, opaque_type_id)) | 334 | TypeCtor::OpaqueType(from_chalk(db, opaque_type_id)) |