Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
| -rw-r--r-- | crates/hir/src/lib.rs | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs index f4e58d88ed..18de04b16d 100644 --- a/crates/hir/src/lib.rs +++ b/crates/hir/src/lib.rs @@ -32,7 +32,7 @@ pub mod symbols; mod display; -use std::{collections::HashMap, iter, ops::ControlFlow, sync::Arc}; +use std::{iter, ops::ControlFlow, sync::Arc}; use arrayvec::ArrayVec; use base_db::{CrateDisplayName, CrateId, CrateOrigin, Edition, FileId, ProcMacroKind}; @@ -55,9 +55,7 @@ use hir_def::{ use hir_expand::{name::name, MacroCallKind}; use hir_ty::{ autoderef, - consteval::{ - eval_const, unknown_const_as_generic, ComputedExpr, ConstEvalCtx, ConstEvalError, ConstExt, - }, + consteval::{unknown_const_as_generic, ComputedExpr, ConstEvalError, ConstExt}, diagnostics::BodyValidationDiagnostic, method_resolution::{self, TyFingerprint}, primitive::UintTy, @@ -1602,20 +1600,7 @@ impl Const { } pub fn eval(self, db: &dyn HirDatabase) -> Result<ComputedExpr, ConstEvalError> { - let body = db.body(self.id.into()); - let root = &body.exprs[body.body_expr]; - let infer = db.infer_query(self.id.into()); - let infer = infer.as_ref(); - let result = eval_const( - root, - &mut ConstEvalCtx { - exprs: &body.exprs, - pats: &body.pats, - local_data: HashMap::default(), - infer: &mut |x| infer[x].clone(), - }, - ); - result + db.const_eval(self.id) } } |