[GHC] #10047: inconsistency in name binding between splice and quasiquotation

GHC ghc-devs at haskell.org
Thu Jun 4 11:55:43 UTC 2015


#10047: inconsistency in name binding between splice and quasiquotation
-------------------------------------+-------------------------------------
        Reporter:  rwbarton          |                   Owner:
            Type:  bug               |                  Status:  closed
        Priority:  normal            |               Milestone:  7.12.1
       Component:  Template Haskell  |                 Version:  7.8.4
      Resolution:  fixed             |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:  th/T10047
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by spinda):

 This has broken the name resolution behavior for quasiquoters. Previously,
 this was valid (assuming "wow" is a quasiquoter producing a declaration):

 {{{
 {-# LANGUAGE QuasiQuotes #-}

 thing = okay
 [wow|stuff|]
 okay = 3
 }}}

 but now it produces an error:

 {{{
 /tmp/runghcXXXX1804289383846930886.hs:3:9: error:
     Not in scope: ‘okay’
 }}}

 because after this change, quasiquoters share the declaration order
 restrictions of splices.

 I have code that depends on the previous behavior, and I'm sure there's a
 lot more code out there that does as well, as this was one of the main
 advantages of using quasiquoters over regular splices.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10047#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list