X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FMkId.lhs;h=f9eae930f99815ec88b3188696c35b69f266ae60;hb=f5baf549bcd4b835fdc8e0ce00b854f522464e68;hp=7499b7819659d6a9057e2eb47e3bb82119312f82;hpb=6c1dbaa6fb592fc042af03f72a060ad0bb611db2;p=ghc-hetmet.git diff --git a/compiler/basicTypes/MkId.lhs b/compiler/basicTypes/MkId.lhs index 7499b78..f9eae93 100644 --- a/compiler/basicTypes/MkId.lhs +++ b/compiler/basicTypes/MkId.lhs @@ -334,7 +334,7 @@ mkDataConIds wrap_name wkr_name data_con -- ...(let w = C x in ...(w p q)...)... -- we want to see that w is strict in its two arguments - wrap_unf = mkTopUnfolding $ Note InlineMe $ + wrap_unf = mkImplicitUnfolding $ Note InlineMe $ mkLams wrap_tvs $ mkLams eq_args $ mkLams dict_args $ mkLams id_args $ @@ -602,9 +602,11 @@ mkRecordSelId tycon field_label info = noCafIdInfo `setCafInfo` caf_info `setArityInfo` arity - `setUnfoldingInfo` mkTopUnfolding rhs_w_str + `setUnfoldingInfo` unfolding `setAllStrictnessInfo` Just strict_sig + unfolding = mkImplicitUnfolding rhs_w_str + -- Allocate Ids. We do it a funny way round because field_dict_tys is -- almost always empty. Also note that we use max_dict_tys -- rather than n_dict_tys, because the latter gives an infinite loop: @@ -862,7 +864,7 @@ mkDictSelId no_unf name clas `setArityInfo` 1 `setAllStrictnessInfo` Just strict_sig `setUnfoldingInfo` (if no_unf then noUnfolding - else mkTopUnfolding rhs) + else mkImplicitUnfolding rhs) -- We no longer use 'must-inline' on record selectors. They'll -- inline like crazy if they scrutinise a constructor