Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/eval.rs')
-rw-r--r--crates/hir-ty/src/mir/eval.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/hir-ty/src/mir/eval.rs b/crates/hir-ty/src/mir/eval.rs
index 035991b5e7..045ffb418c 100644
--- a/crates/hir-ty/src/mir/eval.rs
+++ b/crates/hir-ty/src/mir/eval.rs
@@ -2356,7 +2356,7 @@ impl Evaluator<'_> {
fn exec_fn_with_args(
&mut self,
- def: FunctionId,
+ mut def: FunctionId,
args: &[IntervalAndTy],
generic_args: Substitution,
locals: &Locals,
@@ -2374,6 +2374,9 @@ impl Evaluator<'_> {
)? {
return Ok(None);
}
+ if let Some(redirect_def) = self.detect_and_redirect_special_function(def)? {
+ def = redirect_def;
+ }
let arg_bytes = args.iter().map(|it| IntervalOrOwned::Borrowed(it.interval));
match self.get_mir_or_dyn_index(def, generic_args.clone(), locals, span)? {
MirOrDynIndex::Dyn(self_ty_idx) => {