Comments only
authorsimonpj@microsoft.com <unknown>
Tue, 9 Mar 2010 17:27:43 +0000 (17:27 +0000)
committersimonpj@microsoft.com <unknown>
Tue, 9 Mar 2010 17:27:43 +0000 (17:27 +0000)
compiler/basicTypes/BasicTypes.lhs

index 4531c91..f14ab4d 100644 (file)
@@ -673,8 +673,13 @@ defaultInlinePragma = InlinePragma { inl_act = AlwaysActive
 
 alwaysInlinePragma = defaultInlinePragma { inl_inline = True }
 neverInlinePragma  = defaultInlinePragma { inl_act    = NeverActive }
-dfunInlinePragma   = defaultInlinePragma { inl_rule   = ConLike }
-                                    
+
+-- A DFun has an always-active inline activation so that 
+-- exprIsConApp_maybe can "see" its unfolding
+-- (However, its actual Unfolding is a DFunUnfolding, which is
+--  never inlined other than via exprIsConApp_maybe.)
+dfunInlinePragma   = defaultInlinePragma { inl_act  = AlwaysActive
+                                         , inl_rule = ConLike }
 
 isDefaultInlinePragma :: InlinePragma -> Bool
 isDefaultInlinePragma (InlinePragma { inl_act = activation