
#16279: Lexer: Alternate Layout Rule injects actual not virtual braces -------------------------------------+------------------------------------- Reporter: alanz | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 (Parser) | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Incorrect API Unknown/Multiple | annotation Test Case: | Blocked By: Blocking: | Related Tickets: #13807 Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- When the alternate layout rule is activated via a pragma, it injects tokens for `{` and `}` to make sure that the source is parsed properly. But it injects `ITocurly` and `ITccurly`, rather than their virtual counterparts `ITvocurly` and `ITvccurly`. This causes problems for `ghc-exactprint`, which tries to print these. Test case (the existing T13087.hs) {{{#!hs {-# LANGUAGE AlternativeLayoutRule #-} {-# LANGUAGE LambdaCase #-} isOne :: Int -> Bool isOne = \case 1 -> True _ -> False main = return () }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16279 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler