diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2015-04-14 01:17:58 -0500 |
---|---|---|
committer | Austin Seipp <austin@well-typed.com> | 2015-04-14 01:20:06 -0500 |
commit | 919b51174163907d2bc3bb41aadf56aa8bb42e9b (patch) | |
tree | 1c905ca6cd84cda9ff99ce26bf7c5dd385e2d35c /compiler | |
parent | 9eab6feed44ad8beb6703d2e27ce47a8f79d0f49 (diff) | |
download | haskell-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.y | 6 |
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, |