[GHC] #10061: Remove fun_infix from Funbind, as it is now in Match
GHC
ghc-devs at haskell.org
Wed Nov 11 11:26:57 UTC 2015
#10061: Remove fun_infix from Funbind, as it is now in Match
-------------------------------------+-------------------------------------
Reporter: alanz | Owner: alanz
Type: task | Status: new
Priority: normal | Milestone: 8.0.1
Component: Compiler | Version: 7.10.1-rc2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #9988 | Differential Rev(s): Phab:D1285
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Ben Gamari <ben@…>):
In [changeset:"f0f9365fd7fe1a4c06926f390a6183449c3c6332/ghc" f0f9365/ghc]:
{{{
#!CommitTicketReference repository="ghc"
revision="f0f9365fd7fe1a4c06926f390a6183449c3c6332"
Remove fun_infix from Funbind, as it is now in Match
One of the changes D538 introduced is to add `m_fun_id_infix` to `Match`
```lang=hs
data Match id body
= Match {
m_fun_id_infix :: (Maybe (Located id,Bool)),
-- fun_id and fun_infix for functions with multiple equations
-- only present for a RdrName. See note [fun_id in Match]
m_pats :: [LPat id], -- The patterns
m_type :: (Maybe (LHsType id)),
-- A type signature for the result of the
match
-- Nothing after typechecking
m_grhss :: (GRHSs id body)
} deriving (Typeable)
```
This was done to track the individual locations and fixity of the
`fun_id` for each of the defining equations for a function when there
are more than one.
For example, the function `(&&&)` is defined with some prefix and some
infix equations below.
```lang=hs
(&&& ) [] [] = []
xs &&& [] = xs
( &&& ) [] ys = ys
```
This means that the fun_infix is now superfluous in the `FunBind`. This
has not been removed as a potentially risky change just before 7.10 RC2,
and so must be done after.
This ticket captures that task, which includes processing these fields
through the renamer and beyond.
Ticket #9988 introduced these fields into `Match` through renaming, this
ticket it to continue through type checking and then remove it from
`FunBind` completely.
The split happened so that #9988 could land in 7.10
Trac ticket : #10061
Test Plan: ./validate
Reviewers: goldfire, austin, simonpj, bgamari
Reviewed By: bgamari
Subscribers: simonpj, thomie, mpickering
Differential Revision: https://phabricator.haskell.org/D1285
GHC Trac Issues: #10061
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10061#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list