summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorAlan Zimmerman <alan.zimm@gmail.com>2015-04-14 01:17:58 -0500
committerAustin Seipp <austin@well-typed.com>2015-04-14 01:20:06 -0500
commit919b51174163907d2bc3bb41aadf56aa8bb42e9b (patch)
tree1c905ca6cd84cda9ff99ce26bf7c5dd385e2d35c /compiler
parent9eab6feed44ad8beb6703d2e27ce47a8f79d0f49 (diff)
downloadhaskell-919b51174163907d2bc3bb41aadf56aa8bb42e9b.tar.gz
parser : the API annotation on opt_sig is being discarded
The opt_sig production is defined as opt_sig :: { ([AddAnn],Maybe (LHsType RdrName)) } : {- empty -} { ([],Nothing) } | '::' sigtype { ([mj AnnDcolon $1],Just $2) } It is used in the alt and decl_no_th productions, but neither of them add the returned annotations. This commit captures the annotations in the calling productions. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D822 GHC Trac Issues: #10254
Diffstat (limited to 'compiler')
-rw-r--r--compiler/parser/Parser.y6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/parser/Parser.y b/compiler/parser/Parser.y
index 3a879ba2f6..48bc637d87 100644
--- a/compiler/parser/Parser.y
+++ b/compiler/parser/Parser.y
@@ -1999,9 +1999,9 @@ decl_no_th :: { Located (OrdList (LHsDecl RdrName)) }
let { l = comb2 $1 $> };
case r of {
(FunBind n _ _ _ _ _) ->
- ams (L l ()) [mj AnnFunId n] >> return () ;
+ ams (L l ()) (mj AnnFunId n:(fst $2)) >> return () ;
_ -> return () } ;
- _ <- ams (L l ()) (fst $ unLoc $3);
+ _ <- ams (L l ()) ((fst $2) ++ (fst $ unLoc $3));
return $! (sL l (unitOL $! (sL l $ ValD r))) } }
| pattern_synonym_decl { sLL $1 $> $ unitOL $1 }
| docdecl { sLL $1 $> $ unitOL $1 }
@@ -2573,7 +2573,7 @@ alts1 :: { Located ([AddAnn],[LMatch RdrName (LHsExpr RdrName)]) }
alt :: { LMatch RdrName (LHsExpr RdrName) }
: pat opt_sig alt_rhs {%ams (sLL $1 $> (Match Nothing [$1] (snd $2)
(snd $ unLoc $3)))
- (fst $ unLoc $3)}
+ ((fst $2) ++ (fst $ unLoc $3))}
alt_rhs :: { Located ([AddAnn],GRHSs RdrName (LHsExpr RdrName)) }
: ralt wherebinds { sLL $1 $> (fst $ unLoc $2,