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
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.
(&&& ) [] [] = []
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 (closed) 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 (closed) could land in 7.10
Trac metadata
Trac field | Value |
---|---|
Version | 7.10.1-rc2 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | simonpj |
Operating system | |
Architecture |