Rollup merge of #78674 - tmiasko:inline-substs-for-mir-body, r=oli-obk
inliner: Use substs_for_mir_body Changes from 68965 extended the kind of instances that are being inlined. For some of those, the `instance_mir` returns a MIR body that is already expressed in terms of the types found in substitution array, and doesn't need further substitution. Use `substs_for_mir_body` to take that into account. Resolves #78529. Resolves #78560.
This commit is contained in:
commit
806538fa78
@ -361,13 +361,11 @@ impl<'tcx, M: Module> FunctionCx<'_, 'tcx, M> {
|
||||
where
|
||||
T: TypeFoldable<'tcx> + Copy,
|
||||
{
|
||||
if let Some(substs) = self.instance.substs_for_mir_body() {
|
||||
self.tcx
|
||||
.subst_and_normalize_erasing_regions(substs, ty::ParamEnv::reveal_all(), value)
|
||||
} else {
|
||||
self.tcx
|
||||
.normalize_erasing_regions(ty::ParamEnv::reveal_all(), *value)
|
||||
}
|
||||
self.instance.subst_mir_and_normalize_erasing_regions(
|
||||
self.tcx,
|
||||
ty::ParamEnv::reveal_all(),
|
||||
value
|
||||
)
|
||||
}
|
||||
|
||||
pub(crate) fn clif_type(&self, ty: Ty<'tcx>) -> Option<Type> {
|
||||
|
Loading…
Reference in New Issue
Block a user