diff --git a/crates/hir_ty/src/traits/chalk/interner.rs b/crates/hir_ty/src/traits/chalk/interner.rs index 3a6ceef05bf2..d6325238262b 100644 --- a/crates/hir_ty/src/traits/chalk/interner.rs +++ b/crates/hir_ty/src/traits/chalk/interner.rs @@ -56,6 +56,7 @@ fn deref(&self) -> &Self::Target { InternedTypeInner, InternedWrapper>, InternedWrapper>, + InternedWrapper>>, ); impl chalk_ir::interner::Interner for Interner { @@ -71,7 +72,7 @@ impl chalk_ir::interner::Interner for Interner { type InternedProgramClauses = Arc<[chalk_ir::ProgramClause]>; type InternedQuantifiedWhereClauses = Vec>; type InternedVariableKinds = Interned; - type InternedCanonicalVarKinds = Vec>; + type InternedCanonicalVarKinds = Interned>>>; type InternedConstraints = Vec>>; type InternedVariances = Arc<[chalk_ir::Variance]>; type DefId = InternId; @@ -370,7 +371,7 @@ fn intern_canonical_var_kinds( &self, data: impl IntoIterator, E>>, ) -> Result { - data.into_iter().collect() + Ok(Interned::new(InternedWrapper(data.into_iter().collect::>()?))) } fn canonical_var_kinds_data<'a>(