Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-ty/src/infer/expr.rs8
-rw-r--r--crates/hir-ty/src/infer/path.rs5
-rw-r--r--crates/hir-ty/src/lib.rs2
-rw-r--r--crates/hir-ty/src/lower.rs12
-rw-r--r--crates/hir-ty/src/lower/path.rs2
-rw-r--r--crates/hir-ty/src/method_resolution.rs8
-rw-r--r--crates/hir-ty/src/next_solver/generic_arg.rs5
-rw-r--r--crates/hir-ty/src/next_solver/infer/canonical/canonicalizer.rs2
-rw-r--r--crates/hir-ty/src/next_solver/interner.rs16
-rw-r--r--crates/hir-ty/src/variance.rs2
10 files changed, 22 insertions, 40 deletions
diff --git a/crates/hir-ty/src/infer/expr.rs b/crates/hir-ty/src/infer/expr.rs
index ae69e5176a..dc4d34f7b5 100644
--- a/crates/hir-ty/src/infer/expr.rs
+++ b/crates/hir-ty/src/infer/expr.rs
@@ -780,7 +780,7 @@ impl<'db> InferenceContext<'_, 'db> {
Ty::new_adt(
self.interner(),
adt,
- GenericArgs::new_from_iter(self.interner(), [GenericArg::from(ty)]),
+ GenericArgs::new_from_slice(&[GenericArg::from(ty)]),
)
};
match (range_type, lhs_ty, rhs_ty) {
@@ -2164,10 +2164,8 @@ impl<'db> InferenceContext<'_, 'db> {
if let ItemContainerId::TraitId(trait_) = f.lookup(self.db).container {
// construct a TraitRef
let trait_params_len = generics(self.db, trait_.into()).len();
- let substs = GenericArgs::new_from_iter(
- self.interner(),
- parameters.as_slice()[..trait_params_len].iter().copied(),
- );
+ let substs =
+ GenericArgs::new_from_slice(&parameters.as_slice()[..trait_params_len]);
self.table.register_predicate(Obligation::new(
self.interner(),
ObligationCause::new(),
diff --git a/crates/hir-ty/src/infer/path.rs b/crates/hir-ty/src/infer/path.rs
index 69e6b40a09..98a2a2ddc0 100644
--- a/crates/hir-ty/src/infer/path.rs
+++ b/crates/hir-ty/src/infer/path.rs
@@ -240,10 +240,7 @@ impl<'db> InferenceContext<'_, 'db> {
if let ItemContainerId::TraitId(trait_) = container {
let parent_len = generics(self.db, def).parent_generics().map_or(0, |g| g.len_self());
- let parent_subst = GenericArgs::new_from_iter(
- interner,
- subst.as_slice()[..parent_len].iter().copied(),
- );
+ let parent_subst = GenericArgs::new_from_slice(&subst.as_slice()[..parent_len]);
let trait_ref = TraitRef::new(interner, trait_.into(), parent_subst);
self.table.register_predicate(Obligation::new(
interner,
diff --git a/crates/hir-ty/src/lib.rs b/crates/hir-ty/src/lib.rs
index 012fd8a10a..4076572993 100644
--- a/crates/hir-ty/src/lib.rs
+++ b/crates/hir-ty/src/lib.rs
@@ -469,7 +469,7 @@ where
Canonical {
value,
max_universe: rustc_type_ir::UniverseIndex::ZERO,
- variables: CanonicalVars::new_from_iter(interner, error_replacer.vars),
+ variables: CanonicalVars::new_from_slice(&error_replacer.vars),
}
}
diff --git a/crates/hir-ty/src/lower.rs b/crates/hir-ty/src/lower.rs
index 7c38c83628..62a5837f34 100644
--- a/crates/hir-ty/src/lower.rs
+++ b/crates/hir-ty/src/lower.rs
@@ -2336,10 +2336,7 @@ pub(crate) fn associated_ty_item_bounds<'db>(
Some(ExistentialPredicate::Trait(ExistentialTraitRef::new_from_args(
interner,
t.def_id(),
- GenericArgs::new_from_iter(
- interner,
- t.trait_ref.args.iter().skip(1),
- ),
+ GenericArgs::new_from_slice(&t.trait_ref.args[1..]),
)))
}
}
@@ -2347,10 +2344,7 @@ pub(crate) fn associated_ty_item_bounds<'db>(
ExistentialPredicate::Projection(ExistentialProjection::new_from_args(
interner,
p.def_id(),
- GenericArgs::new_from_iter(
- interner,
- p.projection_term.args.iter().skip(1),
- ),
+ GenericArgs::new_from_slice(&p.projection_term.args[1..]),
p.term,
)),
),
@@ -2380,7 +2374,7 @@ pub(crate) fn associated_ty_item_bounds<'db>(
bounds.push(sized_clause);
}
- EarlyBinder::bind(BoundExistentialPredicates::new_from_iter(interner, bounds))
+ EarlyBinder::bind(BoundExistentialPredicates::new_from_slice(&bounds))
}
pub(crate) fn associated_type_by_name_including_super_traits<'db>(
diff --git a/crates/hir-ty/src/lower/path.rs b/crates/hir-ty/src/lower/path.rs
index fba176bcb1..54ce1f7402 100644
--- a/crates/hir-ty/src/lower/path.rs
+++ b/crates/hir-ty/src/lower/path.rs
@@ -1283,7 +1283,7 @@ pub(crate) fn substs_from_args_and_bindings<'db>(
}
}
- GenericArgs::new_from_iter(interner, substs)
+ GenericArgs::new_from_slice(&substs)
}
fn type_looks_like_const(
diff --git a/crates/hir-ty/src/method_resolution.rs b/crates/hir-ty/src/method_resolution.rs
index aaa3cce4fa..fee3f66409 100644
--- a/crates/hir-ty/src/method_resolution.rs
+++ b/crates/hir-ty/src/method_resolution.rs
@@ -392,10 +392,10 @@ pub fn is_dyn_method<'db>(
};
let trait_params = db.generic_params(trait_id.into()).len();
let fn_params = fn_subst.len() - trait_params;
- let trait_ref = TraitRef::new(
+ let trait_ref = TraitRef::new_from_args(
interner,
trait_id.into(),
- GenericArgs::new_from_iter(interner, fn_subst.iter().take(trait_params)),
+ GenericArgs::new_from_slice(&fn_subst[..trait_params]),
);
let self_ty = trait_ref.self_ty();
if let TyKind::Dynamic(d, _) = self_ty.kind() {
@@ -427,10 +427,10 @@ pub(crate) fn lookup_impl_method_query<'db>(
return (func, fn_subst);
};
let trait_params = db.generic_params(trait_id.into()).len();
- let trait_ref = TraitRef::new(
+ let trait_ref = TraitRef::new_from_args(
interner,
trait_id.into(),
- GenericArgs::new_from_iter(interner, fn_subst.iter().take(trait_params)),
+ GenericArgs::new_from_slice(&fn_subst[..trait_params]),
);
let name = &db.function_signature(func).name;
diff --git a/crates/hir-ty/src/next_solver/generic_arg.rs b/crates/hir-ty/src/next_solver/generic_arg.rs
index 6eee7cc27a..9936e44321 100644
--- a/crates/hir-ty/src/next_solver/generic_arg.rs
+++ b/crates/hir-ty/src/next_solver/generic_arg.rs
@@ -698,10 +698,7 @@ impl<'db> rustc_type_ir::inherent::GenericArgs<DbInterner<'db>> for GenericArgs<
let inputs = Ty::new_tup(interner, s.inputs());
let output = s.output();
FnSigTys {
- inputs_and_output: Tys::new_from_iter(
- interner,
- [inputs, output],
- ),
+ inputs_and_output: Tys::new_from_slice(&[inputs, output]),
}
}),
header,
diff --git a/crates/hir-ty/src/next_solver/infer/canonical/canonicalizer.rs b/crates/hir-ty/src/next_solver/infer/canonical/canonicalizer.rs
index 4422eeaa9a..ccd9359010 100644
--- a/crates/hir-ty/src/next_solver/infer/canonical/canonicalizer.rs
+++ b/crates/hir-ty/src/next_solver/infer/canonical/canonicalizer.rs
@@ -562,7 +562,7 @@ impl<'cx, 'db> Canonicalizer<'cx, 'db> {
debug_assert!(!out_value.has_infer() && !out_value.has_placeholders());
let canonical_variables =
- CanonicalVars::new_from_iter(tcx, canonicalizer.universe_canonicalized_variables());
+ CanonicalVars::new_from_slice(&canonicalizer.universe_canonicalized_variables());
let max_universe = canonical_variables
.iter()
diff --git a/crates/hir-ty/src/next_solver/interner.rs b/crates/hir-ty/src/next_solver/interner.rs
index fcda02b1fa..2ebc5b81ba 100644
--- a/crates/hir-ty/src/next_solver/interner.rs
+++ b/crates/hir-ty/src/next_solver/interner.rs
@@ -21,9 +21,9 @@ use rustc_abi::{ReprFlags, ReprOptions};
use rustc_hash::FxHashSet;
use rustc_index::bit_set::DenseBitSet;
use rustc_type_ir::{
- AliasTermKind, AliasTyKind, BoundVar, CollectAndApply, CoroutineWitnessTypes, DebruijnIndex,
- EarlyBinder, FlagComputation, Flags, GenericArgKind, GenericTypeVisitable, ImplPolarity,
- InferTy, Interner, TraitRef, TypeFlags, TypeVisitableExt, UniverseIndex, Upcast, Variance,
+ AliasTermKind, AliasTyKind, BoundVar, CoroutineWitnessTypes, DebruijnIndex, EarlyBinder,
+ FlagComputation, Flags, GenericArgKind, GenericTypeVisitable, ImplPolarity, InferTy, Interner,
+ TraitRef, TypeFlags, TypeVisitableExt, UniverseIndex, Upcast, Variance,
elaborate::elaborate,
error::TypeError,
fast_reject,
@@ -1270,10 +1270,8 @@ impl<'db> Interner for DbInterner<'db> {
) -> (rustc_type_ir::TraitRef<Self>, Self::GenericArgsSlice) {
let trait_def_id = self.parent(def_id);
let trait_generics = self.generics_of(trait_def_id);
- let trait_args = GenericArgs::new_from_iter(
- self,
- args.as_slice()[0..trait_generics.own_params.len()].iter().cloned(),
- );
+ let trait_args =
+ GenericArgs::new_from_slice(&args.as_slice()[0..trait_generics.own_params.len()]);
let alias_args = &args.as_slice()[trait_generics.own_params.len()..];
(TraitRef::new_from_args(self, trait_def_id.try_into().unwrap(), trait_args), alias_args)
}
@@ -2105,9 +2103,7 @@ impl<'db> Interner for DbInterner<'db> {
let mut map = Default::default();
let delegate = Anonymize { interner: self, map: &mut map };
let inner = self.replace_escaping_bound_vars_uncached(value.skip_binder(), delegate);
- let bound_vars = CollectAndApply::collect_and_apply(map.into_values(), |xs| {
- BoundVarKinds::new_from_iter(self, xs.iter().cloned())
- });
+ let bound_vars = BoundVarKinds::new_from_iter(self, map.into_values());
Binder::bind_with_vars(inner, bound_vars)
}
diff --git a/crates/hir-ty/src/variance.rs b/crates/hir-ty/src/variance.rs
index a050124c90..5b8122a0a5 100644
--- a/crates/hir-ty/src/variance.rs
+++ b/crates/hir-ty/src/variance.rs
@@ -82,7 +82,7 @@ fn variances_of_query(db: &dyn HirDatabase, def: GenericDefId) -> StoredVariance
}
}
- VariancesOf::new_from_iter(interner, variances).store()
+ VariancesOf::new_from_slice(&variances).store()
}
// pub(crate) fn variances_of_cycle_fn(