From 1229ee967d3e5b2dc11e760717cf3c8bc120238c Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 26 May 1997 03:33:27 +0000 Subject: [PATCH] [project @ 1997-05-26 03:33:27 by sof] Strictness info on workers can mention constructors used --- ghc/compiler/rename/ParseUnfolding.y | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ghc/compiler/rename/ParseUnfolding.y b/ghc/compiler/rename/ParseUnfolding.y index 72a7c30..61da1ee 100644 --- a/ghc/compiler/rename/ParseUnfolding.y +++ b/ghc/compiler/rename/ParseUnfolding.y @@ -27,7 +27,7 @@ import Name ( OccName(..), isTCOcc, Provenance, SYN_IE(Module) ) import SrcLoc ( mkIfaceSrcLoc ) import Util ( panic{-, pprPanic ToDo:rm-} ) import Pretty ( Doc ) -import PprStyle -- PprDebug for panic +import Outputable ( PprStyle(..) ) import Maybes ( MaybeErr(..) ) ------------------------------------------------------------------ @@ -84,7 +84,7 @@ parseUnfolding ls = ARITY_PART { ITarity } STRICT_PART { ITstrict } - UNFOLD_PART { ITunfold } + UNFOLD_PART { ITunfold $$ } DEMAND { ITdemand $$ } BOTTOM { ITbottom } LAM { ITlam } @@ -124,13 +124,14 @@ id_info_item :: { HsIdInfo RdrName } id_info_item : ARITY_PART arity_info { HsArity $2 } | STRICT_PART strict_info { HsStrictness $2 } | BOTTOM { HsStrictness mkBottomStrictnessInfo } - | UNFOLD_PART core_expr { HsUnfold $2 } + | UNFOLD_PART core_expr { HsUnfold $1 $2 } arity_info :: { ArityInfo } arity_info : INTEGER { exactArity (fromInteger $1) } strict_info :: { StrictnessInfo RdrName } -strict_info : DEMAND any_var_name { mkStrictnessInfo $1 (Just $2) } +strict_info : DEMAND any_var_name OCURLY data_names CCURLY { mkStrictnessInfo $1 (Just ($2,$4)) } + | DEMAND any_var_name { mkStrictnessInfo $1 (Just ($2,[])) } | DEMAND { mkStrictnessInfo $1 Nothing } core_expr :: { UfExpr RdrName } @@ -272,7 +273,11 @@ any_var_name : var_name { $1 } var_names :: { [RdrName] } var_names : { [] } - | var_name var_names { $1 : $2 + | var_name var_names { $1 : $2 } + +data_names :: { [RdrName] } +data_names : { [] } + | data_name data_names { $1 : $2 --productions-for-types-------------------------------- } -- 1.7.10.4