about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlessandro Decina <alessandro.d@gmail.com>2019-07-16 09:47:08 +1000
committerAlessandro Decina <alessandro.d@gmail.com>2019-07-16 09:47:08 +1000
commit745c76d657ebbe29265100e5381f8bf326c54567 (patch)
tree7f4dadea94654ac4cef081f8f09b0cf5bbde2fab
parentacfe99a98efc57133f9596a3df937ed886e83fbe (diff)
downloadrust-745c76d657ebbe29265100e5381f8bf326c54567.tar.gz
rust-745c76d657ebbe29265100e5381f8bf326c54567.zip
Normalize the trait_ref
-rw-r--r--src/librustc_mir/monomorphize/collector.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/librustc_mir/monomorphize/collector.rs b/src/librustc_mir/monomorphize/collector.rs
index acf438dc66b..ee0f9119544 100644
--- a/src/librustc_mir/monomorphize/collector.rs
+++ b/src/librustc_mir/monomorphize/collector.rs
@@ -1143,6 +1143,11 @@ fn create_mono_items_for_default_impls<'tcx>(
                    def_id_to_string(tcx, impl_def_id));
 
             if let Some(trait_ref) = tcx.impl_trait_ref(impl_def_id) {
+                let param_env = ty::ParamEnv::reveal_all();
+                let trait_ref = tcx.normalize_erasing_regions(
+                    param_env,
+                    trait_ref,
+                );
                 let overridden_methods: FxHashSet<_> =
                     impl_item_refs.iter()
                                   .map(|iiref| iiref.ident.modern())
@@ -1165,12 +1170,6 @@ fn create_mono_items_for_default_impls<'tcx>(
                             }
                         }
                     });
-
-                    let param_env = ty::ParamEnv::reveal_all();
-                    let substs = tcx.normalize_erasing_regions(
-                        param_env,
-                        substs,
-                    );
                     let instance = ty::Instance::resolve(tcx,
                                                          param_env,
                                                          method.def_id,