[commit: ghc] master: Simplify AbsBinds wrapping (c6485d5)
git at git.haskell.org
git at git.haskell.org
Fri Feb 12 17:35:49 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac/ghc
>---------------------------------------------------------------
commit c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac
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.
>---------------------------------------------------------------
c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac
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 c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac
More information about the ghc-commits
mailing list