summaryrefslogtreecommitdiff
path: root/compiler/GHC/Iface/Tidy.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Iface/Tidy.hs')
-rw-r--r--compiler/GHC/Iface/Tidy.hs14
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/GHC/Iface/Tidy.hs b/compiler/GHC/Iface/Tidy.hs
index 2b1a4b7108..3d08b139b5 100644
--- a/compiler/GHC/Iface/Tidy.hs
+++ b/compiler/GHC/Iface/Tidy.hs
@@ -454,8 +454,15 @@ trimId :: Id -> Id
trimId id
| not (isImplicitId id)
= id `setIdInfo` vanillaIdInfo
+ `setIdUnfolding` unfolding
| otherwise
= id
+ where
+ unfolding
+ | isCompulsoryUnfolding (idUnfolding id)
+ = idUnfolding id
+ | otherwise
+ = noUnfolding
{- Note [Drop wired-in things]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1195,8 +1202,11 @@ tidyTopIdInfo dflags rhs_tidy_env name orig_rhs tidy_rhs idinfo show_unfold
--------- Unfolding ------------
unf_info = unfoldingInfo idinfo
- unfold_info | show_unfold = tidyUnfolding rhs_tidy_env unf_info unf_from_rhs
- | otherwise = minimal_unfold_info
+ unfold_info
+ | isCompulsoryUnfolding unf_info || show_unfold
+ = tidyUnfolding rhs_tidy_env unf_info unf_from_rhs
+ | otherwise
+ = minimal_unfold_info
minimal_unfold_info = zapUnfolding unf_info
unf_from_rhs = mkTopUnfolding dflags is_bot tidy_rhs
is_bot = isBottomingSig final_sig