[GHC] #13163: Make type import/export API Annotation friendly

GHC ghc-devs at haskell.org
Sat Jan 21 16:41:15 UTC 2017


#13163: Make type import/export API Annotation friendly
-------------------------------------+-------------------------------------
           Reporter:  alanz          |             Owner:  alanz
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.2.1
          Component:  Compiler       |           Version:  8.0.1
  (Parser)                           |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Incorrect API
  Unknown/Multiple                   |  annotation
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 At the moment an export of the form

 {{{#!hs
    type C(..)
 }}}

 is parsed by the rule

 {{{
   |  'type' oqtycon           {% amms (mkTypeImpExp (sLL $1 $> (unLoc
 $2)))
                                      [mj AnnType $1,mj AnnVal $2] }
 }}}

 This means that the origiinal `oqtycon` loses its location which is then
 retained in the `AnnVal` annotation.

 The problem is if the `oqtycon` has its own annotations, these get lost.

 e.g. in

 {{{#!hs
   type (?)(..)
 }}}

 the parens annotations for `(?)` get lost.

 This can be solved by introducing a new `IE` constructor `IEVarType`,
 treated exactly the same as `IEVar` in the rest of the processing.

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


More information about the ghc-tickets mailing list