diff --git a/src/Language/Haskell/Exts/InternalParser.ly b/src/Language/Haskell/Exts/InternalParser.ly index 8a8ea96b..4c9ced63 100644 --- a/src/Language/Haskell/Exts/InternalParser.ly +++ b/src/Language/Haskell/Exts/InternalParser.ly @@ -362,8 +362,8 @@ TODO: Yuck, this is messy, needs fixing in the AST! > conids :: { ([Name L],[S]) } -> : conids ',' conid { (fst $1 ++ [$3], snd $1 ++ [$2]) } -> | optsemis conid { ([$2],[]) } +> : conids optsemis ',' optsemis conid { (fst $1 ++ [$5], snd $1 ++ [$3]) } +> | optsemis conid { ([$2],[]) } ----------------------------------------------------------------------------- Module Header diff --git a/tests/examples/MultilineLanguagePragma.hs b/tests/examples/MultilineLanguagePragma.hs new file mode 100644 index 00000000..b88e4f4e --- /dev/null +++ b/tests/examples/MultilineLanguagePragma.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE +BangPatterns, +MagicHash +,OverloadedStrings +, LambdaCase + #-} + +main = undefined diff --git a/tests/examples/MultilineLanguagePragma.hs.exactprinter.golden b/tests/examples/MultilineLanguagePragma.hs.exactprinter.golden new file mode 100644 index 00000000..1796dc27 --- /dev/null +++ b/tests/examples/MultilineLanguagePragma.hs.exactprinter.golden @@ -0,0 +1 @@ +Match diff --git a/tests/examples/MultilineLanguagePragma.hs.parser.golden b/tests/examples/MultilineLanguagePragma.hs.parser.golden new file mode 100644 index 00000000..7c8e8ae7 --- /dev/null +++ b/tests/examples/MultilineLanguagePragma.hs.parser.golden @@ -0,0 +1,107 @@ +ParseOk + ( Module + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 1 1 9 1 + , srcInfoPoints = + [ SrcSpan "tests/examples/MultilineLanguagePragma.hs" 1 1 1 1 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 1 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 1 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 1 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 9 1 9 1 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 9 1 9 1 + ] + } + Nothing + [ LanguagePragma + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 1 1 6 6 + , srcInfoPoints = + [ SrcSpan "tests/examples/MultilineLanguagePragma.hs" 1 1 1 13 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 2 13 2 14 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 4 1 4 2 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 5 1 5 2 + , SrcSpan "tests/examples/MultilineLanguagePragma.hs" 6 3 6 6 + ] + } + [ Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 2 1 2 13 + , srcInfoPoints = [] + } + "BangPatterns" + , Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 3 1 3 10 + , srcInfoPoints = [] + } + "MagicHash" + , Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 4 2 4 19 + , srcInfoPoints = [] + } + "OverloadedStrings" + , Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 5 4 5 14 + , srcInfoPoints = [] + } + "LambdaCase" + ] + ] + [] + [ PatBind + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 17 + , srcInfoPoints = [] + } + (PVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 5 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 1 8 5 + , srcInfoPoints = [] + } + "main")) + (UnGuardedRhs + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 6 8 17 + , srcInfoPoints = + [ SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 6 8 7 ] + } + (Var + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 8 8 17 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 8 8 17 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/MultilineLanguagePragma.hs" 8 8 8 17 + , srcInfoPoints = [] + } + "undefined")))) + Nothing + ] + , [] + ) diff --git a/tests/examples/MultilineLanguagePragma.hs.prettyparser.golden b/tests/examples/MultilineLanguagePragma.hs.prettyparser.golden new file mode 100644 index 00000000..1796dc27 --- /dev/null +++ b/tests/examples/MultilineLanguagePragma.hs.prettyparser.golden @@ -0,0 +1 @@ +Match diff --git a/tests/examples/MultilineLanguagePragma.hs.prettyprinter.golden b/tests/examples/MultilineLanguagePragma.hs.prettyprinter.golden new file mode 100644 index 00000000..3a5123fc --- /dev/null +++ b/tests/examples/MultilineLanguagePragma.hs.prettyprinter.golden @@ -0,0 +1,3 @@ +{-# LANGUAGE BangPatterns, MagicHash, OverloadedStrings, LambdaCase + #-} +main = undefined