[GHC] #13199: TH-spliced class instances are pretty-printed incorrectly post-#3384
GHC
ghc-devs at haskell.org
Sat Jan 28 04:18:02 UTC 2017
#13199: TH-spliced class instances are pretty-printed incorrectly post-#3384
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
The HsSyn prettyprinter tests patch
499e43824bda967546ebf95ee33ec1f84a114a7c broke the pretty-printing of
Template Haskell-spliced class instances. You can see this for yourself by
compiling this code with GHC HEAD:
{{{#!hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -ddump-splices #-}
module Bug where
class C a b
$([d| instance C a (Maybe b)
|])
}}}
{{{
$ ~/Software/ghc3/inplace/bin/ghc-stage2 --interactive Bug.hs
GHCi, version 8.1.20170126: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/rgscott/.ghci
[1 of 1] Compiling Bug ( Bug.hs, interpreted )
Bug.hs:(9,3)-(10,6): Splicing declarations
[d| instance C a_a1eC (Maybe b_a1eD) |]
======>
instance C a_a4m5 Maybe b_a4m6
}}}
Note the nonsensical `instance C a_a4m5 Maybe b_a4m6`. For comparison,
here is how it should be pretty-printed:
{{{
$ /opt/ghc/8.0.2/bin/ghci Bug.hs
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/rgscott/.ghci
[1 of 1] Compiling Bug ( Bug.hs, interpreted )
Bug.hs:(9,3)-(10,6): Splicing declarations
[d| instance C a_a13N (Maybe b_a13O) |]
======>
instance C a_a3Ju (Maybe b_a3Jv)
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13199>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list