From d8b99b7e9b2ce9fd8ba97fa10657082ceac09c59 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sun, 29 Nov 2009 14:58:40 +0000 Subject: [PATCH] Make the alternative layout rule cope with file pragmas --- compiler/parser/Lexer.x | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index dca51e4..43ddf7c 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -1144,6 +1144,7 @@ setLine code span buf len = do setFile :: Int -> Action setFile code span buf len = do let file = lexemeToFastString (stepOn buf) (len-2) + setAlrLastLoc noSrcSpan setSrcLoc (mkSrcLoc file (srcSpanEndLine span) (srcSpanEndCol span)) _ <- popLexState pushLexState code @@ -1981,7 +1982,8 @@ alternativeLayoutRuleToken t mExpectingOCurly <- getAlrExpectingOCurly let thisLoc = getLoc t thisCol = srcSpanStartCol thisLoc - newLine = srcSpanStartLine thisLoc > srcSpanEndLine lastLoc + newLine = (lastLoc == noSrcSpan) + || (srcSpanStartLine thisLoc > srcSpanEndLine lastLoc) case (unLoc t, context, mExpectingOCurly) of -- I think our implicit open-curly handling is slightly -- different to John's, in how it interacts with newlines -- 1.7.10.4