Use ParamEnv::reveal_all in CFI
This commit is contained in:
parent
f82eb4d0a0
commit
b0beb64830
2 changed files with 47 additions and 2 deletions
|
@ -6,7 +6,7 @@
|
|||
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_middle::bug;
|
||||
use rustc_middle::ty::{self, Instance, Ty, TyCtxt, TypeFoldable};
|
||||
use rustc_middle::ty::{self, Instance, Ty, TyCtxt, TypeFoldable, TypeVisitableExt};
|
||||
use rustc_target::abi::call::{Conv, FnAbi, PassMode};
|
||||
use tracing::instrument;
|
||||
|
||||
|
@ -112,11 +112,12 @@ pub fn typeid_for_instance<'tcx>(
|
|||
instance: Instance<'tcx>,
|
||||
options: TypeIdOptions,
|
||||
) -> String {
|
||||
assert!(!instance.has_non_region_param(), "{instance:#?} must be fully monomorphic");
|
||||
let transform_ty_options = TransformTyOptions::from_bits(options.bits())
|
||||
.unwrap_or_else(|| bug!("typeid_for_instance: invalid option(s) `{:?}`", options.bits()));
|
||||
let instance = transform_instance(tcx, instance, transform_ty_options);
|
||||
let fn_abi = tcx
|
||||
.fn_abi_of_instance(tcx.param_env(instance.def_id()).and((instance, ty::List::empty())))
|
||||
.fn_abi_of_instance(ty::ParamEnv::reveal_all().and((instance, ty::List::empty())))
|
||||
.unwrap_or_else(|error| {
|
||||
bug!("typeid_for_instance: couldn't get fn_abi of instance {instance:?}: {error:?}")
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue