From: simonpj Date: Mon, 25 Jul 2005 11:42:25 +0000 (+0000) Subject: [project @ 2005-07-25 11:42:24 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~324 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=ade7dffdb2933913437b9073eb73485a9e1fbcc9;p=ghc-hetmet.git [project @ 2005-07-25 11:42:24 by simonpj] Comments --- 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) diff --git a/ghc/compiler/iface/BuildTyCl.lhs b/ghc/compiler/iface/BuildTyCl.lhs index 9383ae3..60c5f34 100644 --- a/ghc/compiler/iface/BuildTyCl.lhs +++ b/ghc/compiler/iface/BuildTyCl.lhs @@ -128,8 +128,8 @@ buildDataCon src_name declared_infix vanilla arg_stricts field_lbls = do { wrap_name <- newImplicitBinder src_name mkDataConWrapperOcc ; work_name <- newImplicitBinder src_name mkDataConWorkerOcc -- This last one takes the name of the data constructor in the source - -- code, which (for Haskell source anyway) will be in the SrcDataName name - -- space, and makes it into a "real data constructor name" + -- code, which (for Haskell source anyway) will be in the DataName name + -- space, and puts it into the VarName name space ; let stupid_ctxt = mkDataConStupidTheta tycon arg_tys res_tys