Skip to content
  • Richard Eisenberg's avatar
    Introduce IsPass; refactor wrappers. · 7755ffc2
    Richard Eisenberg authored and Marge Bot's avatar Marge Bot committed
    There are two main payloads of this patch:
    
    1. This introduces IsPass, which allows e.g. printing
       code to ask what pass it is running in (Renamed vs
       Typechecked) and thus print extension fields. See
       Note [IsPass] in Hs.Extension
    
    2. This moves the HsWrap constructor into an extension
       field, where it rightly belongs. This is done for
       HsExpr and HsCmd, but not for HsPat, which is left
       as an exercise for the reader.
    
    There is also some refactoring around SyntaxExprs, but this
    is really just incidental.
    
    This patch subsumes !1721 (sorry @chreekat).
    
    Along the way, there is a bit of refactoring in GHC.Hs.Extension,
    including the removal of NameOrRdrName in favor of NoGhcTc.
    This meant that we had no real need for GHC.Hs.PlaceHolder, so
    I got rid of it.
    
    Updates haddock submodule.
    
    -------------------------
    Metric Decrease:
        haddock.compiler
    -------------------------
    7755ffc2