Renamer part of stand-alone deriving extension.
[ghc-hetmet.git] / compiler / simplCore / SimplUtils.lhs
index cd610a9..2342491 100644 (file)
@@ -52,8 +52,7 @@ import Coercion         ( isEqPredTy
                        )
 import Coercion         ( Coercion, mkUnsafeCoercion, coercionKind )
 import TyCon           ( tyConDataCons_maybe, isClosedNewTyCon )
-import DataCon         ( DataCon, dataConRepArity, dataConExTyVars, 
-                          dataConInstArgTys, dataConTyCon )
+import DataCon         ( DataCon, dataConRepArity, dataConInstArgTys, dataConTyCon )
 import VarSet
 import BasicTypes      ( TopLevelFlag(..), isNotTopLevel, OccInfo(..), isLoopBreaker, isOneOcc,
                          Activation, isAlwaysActive, isActive )
@@ -722,7 +721,8 @@ postInlineUnconditionally
     -> Bool
 postInlineUnconditionally env top_lvl bndr occ_info rhs unfolding
   | not active            = False
-  | isLoopBreaker occ_info = False
+  | isLoopBreaker occ_info = False     -- If it's a loop-breaker of any kind, dont' inline
+                                       -- because it might be referred to "earlier"
   | isExportedId bndr      = False
   | exprIsTrivial rhs     = True
   | otherwise