diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-11-09 01:13:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-09 01:13:42 +0100 |
| commit | 806538fa78c3c8ceb7c6b52b08831ed840a940f4 (patch) | |
| tree | d44fbf1c7ea33f6d624f442cc83318f176f6a2cf | |
| parent | 8a097f7b2c8caae3bbcbb80fed451eed066336a4 (diff) | |
| parent | f7e11cba36abb4da04497c7db9c536df78c3cc51 (diff) | |
| download | rust-806538fa78c3c8ceb7c6b52b08831ed840a940f4.tar.gz rust-806538fa78c3c8ceb7c6b52b08831ed840a940f4.zip | |
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.
| -rw-r--r-- | src/common.rs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/common.rs b/src/common.rs index eda77bf19d3..466758f2f86 100644 --- a/src/common.rs +++ b/src/common.rs @@ -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> { |
