X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FbasicTypes%2FIdInfo.lhs;fp=ghc%2Fcompiler%2FbasicTypes%2FIdInfo.lhs;h=5797436b625884d22b817280745efc1b302545b0;hb=ade7dffdb2933913437b9073eb73485a9e1fbcc9;hp=20dcbe291b79956982f34ba407309a16ea13e7ec;hpb=f5c57f6d5ec4b457ef84bd815ab3fa10bcba531a;p=ghc-hetmet.git diff --git a/ghc/compiler/basicTypes/IdInfo.lhs b/ghc/compiler/basicTypes/IdInfo.lhs index 20dcbe2..5797436 100644 --- a/ghc/compiler/basicTypes/IdInfo.lhs +++ b/ghc/compiler/basicTypes/IdInfo.lhs @@ -236,9 +236,9 @@ data GlobalIdDetails | DataConWorkId DataCon -- The Id for a data constructor *worker* | DataConWrapId DataCon -- The Id for a data constructor *wrapper* -- [the only reasons we need to know is so that - -- a) we can suppress printing a definition in the interface file - -- b) when typechecking a pattern we can get from the - -- Id back to the data con] + -- a) to support isImplicitId + -- b) when desugaring a RecordCon we can get + -- from the Id back to the data con] | ClassOpId Class -- An operation of a class @@ -674,12 +674,12 @@ zapLamInfo info@(IdInfo {occInfo = occ, newDemandInfo = demand}) where -- The "unsafe" occ info is the ones that say I'm not in a lambda -- because that might not be true for an unsaturated lambda - is_safe_occ (OneOcc in_lam once) = in_lam - is_safe_occ other = True + is_safe_occ (OneOcc in_lam _ _) = in_lam + is_safe_occ other = True safe_occ = case occ of - OneOcc _ once -> OneOcc insideLam once - other -> occ + OneOcc _ once min_args -> OneOcc insideLam once min_args + other -> occ is_safe_dmd Nothing = True is_safe_dmd (Just dmd) = not (isStrictDmd dmd)