diff options
| author | Alessandro Decina <alessandro.d@gmail.com> | 2019-07-16 09:47:08 +1000 |
|---|---|---|
| committer | Alessandro Decina <alessandro.d@gmail.com> | 2019-07-16 09:47:08 +1000 |
| commit | 745c76d657ebbe29265100e5381f8bf326c54567 (patch) | |
| tree | 7f4dadea94654ac4cef081f8f09b0cf5bbde2fab | |
| parent | acfe99a98efc57133f9596a3df937ed886e83fbe (diff) | |
| download | rust-745c76d657ebbe29265100e5381f8bf326c54567.tar.gz rust-745c76d657ebbe29265100e5381f8bf326c54567.zip | |
Normalize the trait_ref
| -rw-r--r-- | src/librustc_mir/monomorphize/collector.rs | 11 |
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, |
