Skip to content

Commit bf0b194

Browse files
committed
Tweak interner for chalk
1 parent 20663a2 commit bf0b194

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ pub type OpaqueTyId = chalk_ir::OpaqueTyId<Interner>;
2626
pub type OpaqueTyDatum = chalk_solve::rust_ir::OpaqueTyDatum<Interner>;
2727

2828
impl chalk_ir::interner::Interner for Interner {
29-
type InternedType = Box<chalk_ir::TyData<Self>>; // FIXME use Arc?
29+
type InternedType = Arc<chalk_ir::TyData<Self>>;
3030
type InternedLifetime = chalk_ir::LifetimeData<Self>;
3131
type InternedConst = Arc<chalk_ir::ConstData<Self>>;
3232
type InternedConcreteConst = ();
3333
type InternedGenericArg = chalk_ir::GenericArgData<Self>;
3434
type InternedGoal = Arc<GoalData<Self>>;
3535
type InternedGoals = Vec<Goal<Self>>;
3636
type InternedSubstitution = Vec<GenericArg<Self>>;
37-
type InternedProgramClause = chalk_ir::ProgramClauseData<Self>;
37+
type InternedProgramClause = Arc<chalk_ir::ProgramClauseData<Self>>;
3838
type InternedProgramClauses = Arc<[chalk_ir::ProgramClause<Self>]>;
3939
type InternedQuantifiedWhereClauses = Vec<chalk_ir::QuantifiedWhereClause<Self>>;
4040
type InternedVariableKinds = Vec<chalk_ir::VariableKind<Self>>;
@@ -197,11 +197,11 @@ impl chalk_ir::interner::Interner for Interner {
197197
tls::with_current_program(|prog| Some(prog?.debug_quantified_where_clauses(clauses, fmt)))
198198
}
199199

200-
fn intern_ty(&self, ty: chalk_ir::TyData<Self>) -> Box<chalk_ir::TyData<Self>> {
201-
Box::new(ty)
200+
fn intern_ty(&self, ty: chalk_ir::TyData<Self>) -> Arc<chalk_ir::TyData<Self>> {
201+
Arc::new(ty)
202202
}
203203

204-
fn ty_data<'a>(&self, ty: &'a Box<chalk_ir::TyData<Self>>) -> &'a chalk_ir::TyData<Self> {
204+
fn ty_data<'a>(&self, ty: &'a Arc<chalk_ir::TyData<Self>>) -> &'a chalk_ir::TyData<Self> {
205205
ty
206206
}
207207

@@ -230,7 +230,7 @@ impl chalk_ir::interner::Interner for Interner {
230230
constant
231231
}
232232

233-
fn const_eq(&self, _ty: &Box<chalk_ir::TyData<Self>>, _c1: &(), _c2: &()) -> bool {
233+
fn const_eq(&self, _ty: &Arc<chalk_ir::TyData<Self>>, _c1: &(), _c2: &()) -> bool {
234234
true
235235
}
236236

@@ -284,13 +284,13 @@ impl chalk_ir::interner::Interner for Interner {
284284
fn intern_program_clause(
285285
&self,
286286
data: chalk_ir::ProgramClauseData<Self>,
287-
) -> chalk_ir::ProgramClauseData<Self> {
288-
data
287+
) -> Arc<chalk_ir::ProgramClauseData<Self>> {
288+
Arc::new(data)
289289
}
290290

291291
fn program_clause_data<'a>(
292292
&self,
293-
clause: &'a chalk_ir::ProgramClauseData<Self>,
293+
clause: &'a Arc<chalk_ir::ProgramClauseData<Self>>,
294294
) -> &'a chalk_ir::ProgramClauseData<Self> {
295295
clause
296296
}

0 commit comments

Comments
 (0)