diff --git a/crates/hir_ty/src/traits/chalk/interner.rs b/crates/hir_ty/src/traits/chalk/interner.rs index f35695f6fbd8..f2c9a0d4b337 100644 --- a/crates/hir_ty/src/traits/chalk/interner.rs +++ b/crates/hir_ty/src/traits/chalk/interner.rs @@ -59,6 +59,7 @@ impl_internable!( InternedWrapper>>, InternedWrapper>>, InternedWrapper>>, + InternedWrapper>, ); impl chalk_ir::interner::Interner for Interner { @@ -76,7 +77,7 @@ impl chalk_ir::interner::Interner for Interner { type InternedVariableKinds = Interned; type InternedCanonicalVarKinds = Interned>>>; type InternedConstraints = Vec>>; - type InternedVariances = Arc<[chalk_ir::Variance]>; + type InternedVariances = Interned>>; type DefId = InternId; type InternedAdtId = hir_def::AdtId; type Identifier = TypeAliasId; @@ -413,7 +414,7 @@ impl chalk_ir::interner::Interner for Interner { &self, data: impl IntoIterator>, ) -> Result { - data.into_iter().collect() + Ok(Interned::new(InternedWrapper(data.into_iter().collect::>()?))) } fn variances_data<'a>(