about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2022-07-22 17:26:10 -0400
committerGitHub <noreply@github.com>2022-07-22 17:26:10 -0400
commit25de227b434dc596f9f9caef180e0811564f8d14 (patch)
tree68fc54468999eda64dba7d8d5ce1b8a780ad6cb3
parent0549516230e9286ed75e3c59cd928e8ba1d6969c (diff)
parent19e29e9a5750c744926a491238e6c80e8a929988 (diff)
downloadrust-25de227b434dc596f9f9caef180e0811564f8d14.tar.gz
rust-25de227b434dc596f9f9caef180e0811564f8d14.zip
Rollup merge of #99607 - RalfJung:vtable-check, r=eddyb
interpret: fix vtable check debug assertion

Fixes https://github.com/rust-lang/rust/issues/99605
Thanks to `@eddyb` for suggesting the fix!
-rw-r--r--compiler/rustc_const_eval/src/interpret/terminator.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/compiler/rustc_const_eval/src/interpret/terminator.rs b/compiler/rustc_const_eval/src/interpret/terminator.rs
index e7e60b5fa23..6fef7b3b3cf 100644
--- a/compiler/rustc_const_eval/src/interpret/terminator.rs
+++ b/compiler/rustc_const_eval/src/interpret/terminator.rs
@@ -589,13 +589,12 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
                         ty::ExistentialTraitRef::erase_self_ty(tcx, virtual_trait_ref);
                     let concrete_trait_ref = existential_trait_ref.with_self_ty(tcx, dyn_ty);
 
-                    let concrete_method = Instance::resolve(
+                    let concrete_method = Instance::resolve_for_vtable(
                         tcx,
                         self.param_env,
                         def_id,
                         instance.substs.rebase_onto(tcx, trait_def_id, concrete_trait_ref.substs),
                     )
-                    .unwrap()
                     .unwrap();
                     assert_eq!(fn_inst, concrete_method);
                 }