[project @ 1998-08-14 11:50:58 by sof]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgCon.lhs
index a411043..ea44e5c 100644 (file)
@@ -8,15 +8,13 @@ with {\em constructors} on the RHSs of let(rec)s.  See also
 @CgClosure@, which deals with closures.
 
 \begin{code}
-#include "HsVersions.h"
-
 module CgCon (
        cgTopRhsCon, buildDynCon,
        bindConArgs,
        cgReturnDataCon
     ) where
 
-IMP_Ubiq(){-uitous-}
+#include "HsVersions.h"
 
 import CgMonad
 import AbsCSyn
@@ -44,12 +42,12 @@ import CostCentre   ( currentOrSubsumedCosts, useCurrentCostCentre,
                          dontCareCostCentre, CostCentre
                        )
 import Id              ( idPrimRep, dataConTag, dataConTyCon,
-                         isDataCon, SYN_IE(DataCon),
-                         emptyIdSet, SYN_IE(Id)
+                         isDataCon, DataCon,
+                         emptyIdSet, Id
                        )
 import Literal         ( Literal(..) )
 import Maybes          ( maybeToBool )
-import PrelInfo                ( maybeCharLikeTyCon, maybeIntLikeTyCon )
+import PrelInfo                ( maybeCharLikeCon, maybeIntLikeCon )
 import PrimRep         ( isFloatingRep, PrimRep(..) )
 import TyCon           ( TyCon{-instance Uniquable-} )
 import Util            ( isIn, zipWithEqual, panic, assertPanic )
@@ -294,19 +292,19 @@ Because of this, we use can safely return an addressing mode.
 \begin{code}
 buildDynCon binder cc con [arg_amode] all_zero_size_args@False
 
-  | maybeToBool (maybeCharLikeTyCon tycon)
+  | maybeCharLikeCon con
   = ASSERT(isDataCon con)
     absC (CAssign temp_amode (CCharLike arg_amode))    `thenC`
     returnFC temp_id_info
 
-  | maybeToBool (maybeIntLikeTyCon tycon) && in_range_int_lit arg_amode
+  | maybeIntLikeCon con && in_range_int_lit arg_amode
   = ASSERT(isDataCon con)
     returnFC (stableAmodeIdInfo binder (CIntLike arg_amode) (mkConLFInfo con))
   where
-    tycon = dataConTyCon con
     (temp_amode, temp_id_info) = newTempAmodeAndIdInfo binder (mkConLFInfo con)
 
-    in_range_int_lit (CLit (MachInt val _)) = val <= mAX_INTLIKE && val >= mIN_INTLIKE
+    in_range_int_lit (CLit (MachInt val _)) = val <= mAX_INTLIKE && 
+                                             val >= mIN_INTLIKE
     in_range_int_lit other_amode           = False
 \end{code}