Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/next_solver/binder.rs')
-rw-r--r--crates/hir-ty/src/next_solver/binder.rs27
1 files changed, 11 insertions, 16 deletions
diff --git a/crates/hir-ty/src/next_solver/binder.rs b/crates/hir-ty/src/next_solver/binder.rs
index 22019f1ff9..95f437165d 100644
--- a/crates/hir-ty/src/next_solver/binder.rs
+++ b/crates/hir-ty/src/next_solver/binder.rs
@@ -1,13 +1,10 @@
use hir_def::TraitId;
use macros::{TypeFoldable, TypeVisitable};
-use crate::{
- FnAbi,
- next_solver::{
- Binder, Clauses, DbInterner, EarlyBinder, FnSig, GenericArg, PolyFnSig,
- StoredBoundVarKinds, StoredClauses, StoredGenericArg, StoredGenericArgs, StoredTy,
- StoredTys, TraitRef, Ty, abi::Safety,
- },
+use crate::next_solver::{
+ Binder, Clauses, DbInterner, EarlyBinder, FnSig, FnSigKind, GenericArg, PolyFnSig,
+ StoredBoundVarKinds, StoredClauses, StoredGenericArg, StoredGenericArgs, StoredTy, StoredTys,
+ TraitRef, Ty,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@@ -74,9 +71,7 @@ impl StoredEarlyBinder<StoredTraitRef> {
pub struct StoredPolyFnSig {
bound_vars: StoredBoundVarKinds,
inputs_and_output: StoredTys,
- c_variadic: bool,
- safety: Safety,
- abi: FnAbi,
+ fn_sig_kind: FnSigKind<'static>,
}
impl StoredPolyFnSig {
@@ -87,9 +82,11 @@ impl StoredPolyFnSig {
Self {
bound_vars,
inputs_and_output: sig.inputs_and_output.store(),
- c_variadic: sig.c_variadic,
- safety: sig.safety,
- abi: sig.abi,
+ fn_sig_kind: FnSigKind::new(
+ sig.fn_sig_kind.abi(),
+ sig.fn_sig_kind.safety(),
+ sig.fn_sig_kind.c_variadic(),
+ ),
}
}
@@ -98,9 +95,7 @@ impl StoredPolyFnSig {
Binder::bind_with_vars(
FnSig {
inputs_and_output: self.inputs_and_output.as_ref(),
- c_variadic: self.c_variadic,
- safety: self.safety,
- abi: self.abi,
+ fn_sig_kind: self.fn_sig_kind,
},
self.bound_vars.as_ref(),
)