Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/next_solver/solver.rs')
-rw-r--r--crates/hir-ty/src/next_solver/solver.rs26
1 files changed, 5 insertions, 21 deletions
diff --git a/crates/hir-ty/src/next_solver/solver.rs b/crates/hir-ty/src/next_solver/solver.rs
index 7b96b4008f..8fae340dde 100644
--- a/crates/hir-ty/src/next_solver/solver.rs
+++ b/crates/hir-ty/src/next_solver/solver.rs
@@ -11,13 +11,10 @@ use rustc_type_ir::{
};
use tracing::debug;
-use crate::{
- ImplTraitId,
- next_solver::{
- AliasTy, CanonicalVarKind, Clause, ClauseKind, CoercePredicate, GenericArgs, ImplIdWrapper,
- ParamEnv, Predicate, PredicateKind, SubtypePredicate, Ty, TyKind, fold::fold_tys,
- util::sizedness_fast_path,
- },
+use crate::next_solver::{
+ AliasTy, CanonicalVarKind, Clause, ClauseKind, CoercePredicate, GenericArgs, ImplIdWrapper,
+ ParamEnv, Predicate, PredicateKind, SubtypePredicate, Ty, TyKind, fold::fold_tys,
+ util::sizedness_fast_path,
};
use super::{
@@ -163,20 +160,7 @@ impl<'db> SolverDelegate for SolverContext<'db> {
})
};
- let db = interner.db;
- let (opaques_table, opaque_idx) = match opaque_id.loc(db) {
- ImplTraitId::ReturnTypeImplTrait(func, opaque_idx) => {
- (db.return_type_impl_traits(func), opaque_idx)
- }
- ImplTraitId::TypeAliasImplTrait(type_alias, opaque_idx) => {
- (db.type_alias_impl_traits(type_alias), opaque_idx)
- }
- };
- let item_bounds = opaques_table
- .as_deref()
- .unwrap()
- .as_ref()
- .map_bound(|table| &table.impl_traits[opaque_idx].predicates);
+ let item_bounds = opaque_id.predicates(interner.db);
for predicate in item_bounds.iter_instantiated_copied(interner, args.as_slice()) {
let predicate = replace_opaques_in(predicate);