Skip to content

Commit 1575385

Browse files
committed
More cleanup
1 parent 870958b commit 1575385

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

chalk-solve/src/clauses/builtin_traits.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pub fn add_builtin_program_clauses<I: Interner>(
3434
WellKnownTrait::Copy => copy::add_copy_program_clauses(db, builder, &trait_ref, ty),
3535
WellKnownTrait::Clone => clone::add_clone_program_clauses(db, builder, &trait_ref, ty),
3636
WellKnownTrait::FnOnce | WellKnownTrait::FnMut | WellKnownTrait::Fn => {
37-
fn_family::add_fn_trait_program_clauses(db, builder, trait_ref.trait_id, ty)
37+
fn_family::add_fn_trait_program_clauses(db, builder, trait_ref.trait_id, self_ty)
3838
}
3939
// Drop impls are provided explicitly
4040
WellKnownTrait::Drop => (),
@@ -55,7 +55,7 @@ pub fn add_builtin_assoc_program_clauses<I: Interner>(
5555
let interner = db.interner();
5656
let self_ty = AliasTy::Projection(proj.clone()).self_type_parameter(interner);
5757
let trait_id = db.well_known_trait_id(well_known).unwrap();
58-
fn_family::add_fn_trait_program_clauses(db, builder, trait_id, self_ty.data(interner));
58+
fn_family::add_fn_trait_program_clauses(db, builder, trait_id, self_ty);
5959
}
6060
_ => {}
6161
}

chalk-solve/src/clauses/builtin_traits/fn_family.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
1717
db: &dyn RustIrDatabase<I>,
1818
builder: &mut ClauseBuilder<'_, I>,
1919
trait_id: TraitId<I>,
20-
ty: &TyData<I>,
20+
self_ty: Ty<I>,
2121
) {
22-
match ty {
22+
let interner = db.interner();
23+
match self_ty.data(interner) {
2324
TyData::Function(fn_val) => {
24-
let interner = db.interner();
2525
let (binders, orig_sub) = fn_val.into_binders_and_value(interner);
2626
// Take all of the arguments except for the last one, which
2727
// represents the return type
@@ -43,9 +43,7 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
4343
}),
4444
);
4545

46-
let self_ty = Ty::new(interner, ty);
47-
48-
let tupled_sub = Substitution::from(interner, vec![self_ty, tupled]);
46+
let tupled_sub = Substitution::from(interner, vec![self_ty.clone(), tupled]);
4947
// Given a function type `fn(A1, A2, ..., AN)`, construct a `TraitRef`
5048
// of the form `fn(A1, A2, ..., AN): FnOnce<(A1, A2, ..., AN)>`
5149
let new_trait_ref = TraitRef {

0 commit comments

Comments
 (0)