Add handling for | to the transitional alternative layout rule
authorIan Lynagh <igloo@earth.li>
Tue, 2 Mar 2010 20:58:15 +0000 (20:58 +0000)
committerIan Lynagh <igloo@earth.li>
Tue, 2 Mar 2010 20:58:15 +0000 (20:58 +0000)
compiler/parser/Lexer.x

index 5df5e4e..6cb2c3b 100644 (file)
@@ -2054,6 +2054,18 @@ alternativeLayoutRuleToken t
                     -- Note that we use lastLoc, as we may need to close
                     -- more layouts, or give a semicolon
                     return (L lastLoc ITccurly)
+             -- This next case is to handle a transitional issue:
+             (ITvbar, ALRLayout _ col : ls, _)
+              | newLine && thisCol == col && transitional ->
+                 do addWarning Opt_WarnAlternativeLayoutRuleTransitional
+                               thisLoc
+                               (transitionalAlternativeLayoutWarning
+                                    "`|' at the same depth as implicit layout block")
+                    setALRContext ls
+                    setNextToken t
+                    -- Note that we use lastLoc, as we may need to close
+                    -- more layouts, or give a semicolon
+                    return (L lastLoc ITccurly)
              (_, ALRLayout _ col : ls, _)
               | newLine && thisCol == col ->
                  do setNextToken t