[GHC] #12942: Add infix flag for class and data declarations

GHC ghc-devs at haskell.org
Mon Dec 12 18:51:06 UTC 2016


#12942: Add infix flag for class and data declarations
-------------------------------------+-------------------------------------
        Reporter:  alanz             |                Owner:  alanz
            Type:  task              |               Status:  patch
        Priority:  normal            |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #3384             |  Differential Rev(s):  Phab:D2828
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Alan Zimmerman <alan.zimm@…>):

 In [changeset:"8f6d241a74efa6f6280689a9b14c36c6a9f4c231/ghc"
 8f6d241a/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="8f6d241a74efa6f6280689a9b14c36c6a9f4c231"
 Add infix flag for class and data declarations

 Summary:
 At the moment, data and type declarations using infix formatting produce
 the
 same AST as those using prefix.

 So

     type a ++ b = c

 and

     type (++) a b = c

 cannot be distinguished in the parsed source, without looking at the
 OccName
 details of the constructor being defined.

 Having access to the OccName requires an additional constraint which
 explodes
 out over the entire AST because of its recursive definitions.

 In keeping with moving the parsed source to more directly reflect the
 source
 code as parsed, add a specific flag to the declaration to indicate the
 fixity,
 as used in a Match now too.

 Note: this flag is to capture the fixity used for the lexical definition
 of the
 type, primarily for use by ppr and ghc-exactprint.

 Updates haddock submodule.

 Test Plan: ./validate

 Reviewers: mpickering, goldfire, bgamari, austin

 Reviewed By: mpickering

 Subscribers: thomie

 Differential Revision: https://phabricator.haskell.org/D2828

 GHC Trac Issues: #12942
 }}}

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


More information about the ghc-tickets mailing list