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.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/hir-ty/src/next_solver/solver.rs b/crates/hir-ty/src/next_solver/solver.rs
index 6abc87f088..ecfc1c21b7 100644
--- a/crates/hir-ty/src/next_solver/solver.rs
+++ b/crates/hir-ty/src/next_solver/solver.rs
@@ -1,7 +1,7 @@
//! Defining `SolverContext` for next-trait-solver.
use hir_def::{
- AssocItemId, GeneralConstId,
+ AssocItemId,
signatures::{ConstSignature, TypeAliasSignature},
};
use rustc_next_trait_solver::delegate::SolverDelegate;
@@ -16,6 +16,7 @@ use tracing::debug;
use crate::{
ParamEnvAndCrate, Span,
+ db::GeneralConstId,
next_solver::{
AliasTy, AnyImplId, CanonicalVarKind, Clause, ClauseKind, CoercePredicate, GenericArgs,
ParamEnv, Predicate, PredicateKind, SubtypePredicate, Ty, TyKind, UnevaluatedConst,
@@ -260,11 +261,10 @@ impl<'db> SolverDelegate for SolverContext<'db> {
self.cx().db.const_eval(c, subst, None).ok()?
}
GeneralConstId::StaticId(c) => self.cx().db.const_eval_static(c).ok()?,
- // TODO: Wire up const_eval_anon query in Phase 5.
- // For now, return an error const so normalization resolves the
- // unevaluated const to Error (matching the old behavior where
- // complex expressions produced ConstKind::Error directly).
- GeneralConstId::AnonConstId(_) => return Some(Const::error(self.cx())),
+ GeneralConstId::AnonConstId(c) => {
+ let subst = uv.args;
+ self.cx().db.anon_const_eval(c, subst, None).ok()?
+ }
};
Some(Const::new_from_allocation(
self.interner,