diff options
Diffstat (limited to 'compiler/GHC/Iface/Tidy.hs')
-rw-r--r-- | compiler/GHC/Iface/Tidy.hs | 14 |
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 |