Skip to content

Commit 5b22bec

Browse files
committed
Make add_fn_trait_program_clauses infallible
1 parent 23bae52 commit 5b22bec

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

chalk-solve/src/clauses/builtin_traits.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub fn add_builtin_program_clauses<I: Interner>(
4242
clone::add_clone_program_clauses(db, builder, trait_ref, ty, binders)?;
4343
}
4444
WellKnownTrait::FnOnce | WellKnownTrait::FnMut | WellKnownTrait::Fn => {
45-
fn_family::add_fn_trait_program_clauses(db, builder, well_known, self_ty)?;
45+
fn_family::add_fn_trait_program_clauses(db, builder, well_known, self_ty);
4646
}
4747
WellKnownTrait::Unsize => {
4848
unsize::add_unsize_program_clauses(db, builder, trait_ref, ty)
@@ -72,7 +72,7 @@ pub fn add_builtin_assoc_program_clauses<I: Interner>(
7272
let generalized = generalize::Generalize::apply(db.interner(), self_ty);
7373

7474
builder.push_binders(generalized, |builder, self_ty| {
75-
fn_family::add_fn_trait_program_clauses(db, builder, well_known, self_ty)?;
75+
fn_family::add_fn_trait_program_clauses(db, builder, well_known, self_ty);
7676
Ok(())
7777
})
7878
}

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ use crate::rust_ir::{ClosureKind, FnDefInputsAndOutputDatum, WellKnownTrait};
33
use crate::{Interner, RustIrDatabase, TraitRef};
44
use chalk_ir::cast::Cast;
55
use chalk_ir::{
6-
AliasTy, Binders, Floundered, Normalize, ProjectionTy, Safety, Substitution, TraitId, Ty,
7-
TyKind,
6+
AliasTy, Binders, Normalize, ProjectionTy, Safety, Substitution, TraitId, Ty, TyKind,
87
};
98

109
fn push_clauses<I: Interner>(
@@ -86,7 +85,7 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
8685
builder: &mut ClauseBuilder<'_, I>,
8786
well_known: WellKnownTrait,
8887
self_ty: Ty<I>,
89-
) -> Result<(), Floundered> {
88+
) {
9089
let interner = db.interner();
9190
let trait_id = db.well_known_trait_id(well_known).unwrap();
9291

@@ -107,7 +106,6 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
107106
bound.inputs_and_output,
108107
);
109108
}
110-
Ok(())
111109
}
112110
TyKind::Closure(closure_id, substitution) => {
113111
let closure_kind = db.closure_kind(*closure_id, substitution);
@@ -118,7 +116,7 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
118116
| (WellKnownTrait::FnOnce, _)
119117
);
120118
if !trait_matches {
121-
return Ok(());
119+
return;
122120
}
123121
let closure_inputs_and_output = db.closure_inputs_and_output(*closure_id, substitution);
124122
push_clauses_for_apply(
@@ -129,7 +127,6 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
129127
self_ty,
130128
closure_inputs_and_output,
131129
);
132-
Ok(())
133130
}
134131
TyKind::Function(fn_val) if fn_val.sig.safety == Safety::Safe && !fn_val.sig.variadic => {
135132
let bound_ref = fn_val.clone().into_binders(interner);
@@ -152,8 +149,7 @@ pub fn add_fn_trait_program_clauses<I: Interner>(
152149
output_ty,
153150
);
154151
});
155-
Ok(())
156152
}
157-
_ => Ok(()),
153+
_ => {}
158154
}
159155
}

0 commit comments

Comments
 (0)