[commit: ghc] ghc-8.0: Simplify AbsBinds wrapping (c4e51c8)

git at git.haskell.org git at git.haskell.org
Thu Feb 18 12:02:41 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-8.0
Link       : http://ghc.haskell.org/trac/ghc/changeset/c4e51c89dc3eeb8d7ab2e8f20db6ad17b66ddcda/ghc

>---------------------------------------------------------------

commit c4e51c89dc3eeb8d7ab2e8f20db6ad17b66ddcda
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Feb 12 13:36:17 2016 +0000

    Simplify AbsBinds wrapping
    
    In poking Trac #11414 I found myself sinking into the abe_inst_wrap
    swamp.  What is this strange thing?  (It turned out that #11414 was
    breaking because of it.)
    
    Thrillingly, I found a way to sweep it away again, putting the deep
    instantation into tcMonoBinds instead of mkExport; and it turned out
    that the fun_co_fn field of FunBind was already there ready to receive
    exactly this wrapper. Hooray.  Result
    
    * Death to abe_inst_wrap
    * Death to mbi_orig
    * Death to the plumbing in tcPolyInfer that did the
      deep instantiation
    
    I did find that I had to re-engineer the treatment of instance type
    signatures (again), but the result looks more modular and robust to
    me.
    
    And #11414 is fixed.
    
    (cherry picked from commit c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac)


>---------------------------------------------------------------

c4e51c89dc3eeb8d7ab2e8f20db6ad17b66ddcda
 compiler/deSugar/DsBinds.hs                  |  54 ++++----
 compiler/hsSyn/HsBinds.hs                    |  38 +-----
 compiler/typecheck/TcBinds.hs                | 187 ++++++++++-----------------
 compiler/typecheck/TcClassDcl.hs             |   1 -
 compiler/typecheck/TcHsSyn.hs                |   5 +-
 compiler/typecheck/TcInstDcls.hs             | 151 +++++++++++----------
 testsuite/tests/deSugar/should_compile/all.T |   2 +-
 7 files changed, 186 insertions(+), 252 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc c4e51c89dc3eeb8d7ab2e8f20db6ad17b66ddcda


More information about the ghc-commits mailing list