Skip to content

Commit 417473a

Browse files
committed
Intern Variances
This may be a slight performance improvement.
1 parent f778e50 commit 417473a

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

crates/hir_ty/src/traits/chalk/interner.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ impl_internable!(
5959
InternedWrapper<Vec<chalk_ir::CanonicalVarKind<Interner>>>,
6060
InternedWrapper<Vec<chalk_ir::ProgramClause<Interner>>>,
6161
InternedWrapper<Vec<chalk_ir::QuantifiedWhereClause<Interner>>>,
62+
InternedWrapper<Vec<chalk_ir::Variance>>,
6263
);
6364

6465
impl chalk_ir::interner::Interner for Interner {
@@ -76,7 +77,7 @@ impl chalk_ir::interner::Interner for Interner {
7677
type InternedVariableKinds = Interned<InternedVariableKindsInner>;
7778
type InternedCanonicalVarKinds = Interned<InternedWrapper<Vec<chalk_ir::CanonicalVarKind<Self>>>>;
7879
type InternedConstraints = Vec<chalk_ir::InEnvironment<chalk_ir::Constraint<Self>>>;
79-
type InternedVariances = Arc<[chalk_ir::Variance]>;
80+
type InternedVariances = Interned<InternedWrapper<Vec<chalk_ir::Variance>>>;
8081
type DefId = InternId;
8182
type InternedAdtId = hir_def::AdtId;
8283
type Identifier = TypeAliasId;
@@ -413,7 +414,7 @@ impl chalk_ir::interner::Interner for Interner {
413414
&self,
414415
data: impl IntoIterator<Item = Result<chalk_ir::Variance, E>>,
415416
) -> Result<Self::InternedVariances, E> {
416-
data.into_iter().collect()
417+
Ok(Interned::new(InternedWrapper(data.into_iter().collect::<Result<_, _>>()?)))
417418
}
418419

419420
fn variances_data<'a>(

0 commit comments

Comments
 (0)