GRHS with empty wherebinds gets wrong SrcSpan
authorAlan Zimmerman <alan.zimm@gmail.com>
Thu, 5 Feb 2015 23:37:42 +0000 (17:37 -0600)
committerAustin Seipp <austin@well-typed.com>
Thu, 5 Feb 2015 23:37:42 +0000 (17:37 -0600)
Summary:
When parsing a rhs, the GRHS is constructed via unguardedRHS which is
given a SrcSpan which only takes account of the '=' and wherebinds, so
does not include the exp when wherebinds are empty.

Test Plan: ./validate

Reviewers: hvr, austin

Reviewed By: austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D643

compiler/parser/Parser.y

index e376090..1bffbee 100644 (file)
@@ -1875,7 +1875,7 @@ decl    :: { Located (OrdList (LHsDecl RdrName)) }
 rhs     :: { Located ([AddAnn],GRHSs RdrName (LHsExpr RdrName)) }
         : '=' exp wherebinds    { sL (comb3 $1 $2 $3)
                                     ((mj AnnEqual $1 : (fst $ unLoc $3))
-                                    ,GRHSs (unguardedRHS (comb2 $1 $3) $2)
+                                    ,GRHSs (unguardedRHS (comb3 $1 $2 $3) $2)
                                    (snd $ unLoc $3)) }
         | gdrhs wherebinds      { sLL $1 $>  (fst $ unLoc $2
                                     ,GRHSs (reverse (unLoc $1))