about summary refs log tree commit diff
diff options
context:
space:
mode:
authorjackh726 <jack.huey@umassmed.edu>2021-07-13 15:09:01 -0400
committerjackh726 <jack.huey@umassmed.edu>2021-07-13 15:09:01 -0400
commit09978bdcd154aeac01e06a801fe33d29e57a6bdc (patch)
tree7f9f04e55f69f6dc1925b9bc15c2ea4b7cf984ff
parenta9f1e1c440ae20f0ea99f5e265f24094f1a613a5 (diff)
downloadrust-09978bdcd154aeac01e06a801fe33d29e57a6bdc.tar.gz
rust-09978bdcd154aeac01e06a801fe33d29e57a6bdc.zip
Conditionally call normalize_erasing_regions only if polymorhization is enabled
-rw-r--r--compiler/rustc_middle/src/ty/layout.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs
index dbb5064c4f5..7e757d48209 100644
--- a/compiler/rustc_middle/src/ty/layout.rs
+++ b/compiler/rustc_middle/src/ty/layout.rs
@@ -2478,9 +2478,10 @@ impl<'tcx> ty::Instance<'tcx> {
                 // `src/test/ui/polymorphization/normalized_sig_types.rs`), and codegen not keeping
                 // track of a polymorphization `ParamEnv` to allow normalizing later.
                 let mut sig = match *ty.kind() {
-                    ty::FnDef(def_id, substs) => tcx
+                    ty::FnDef(def_id, substs) if tcx.sess.opts.debugging_opts.polymorphize => tcx
                         .normalize_erasing_regions(tcx.param_env(def_id), tcx.fn_sig(def_id))
                         .subst(tcx, substs),
+                    ty::FnDef(def_id, substs) => tcx.fn_sig(def_id).subst(tcx, substs),
                     _ => unreachable!(),
                 };