diff options
author | Florian Diebold <[email protected]> | 2020-07-15 20:47:45 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2020-07-15 21:07:13 +0100 |
commit | 20770044631fd0c21caa12f9bc87489ea6c848ee (patch) | |
tree | 27ba12638469c763874fa094744ffe3f628a7164 /crates/ra_hir_ty/src/traits/chalk/mapping.rs | |
parent | a48843a16a2306399f2f6a78c69d9192a6480c88 (diff) |
Remove TypeCtor interning
Our TypeCtor and Chalk's TypeName match now!
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)) |