[commit: ghc] master: Turn EvTerm (almost) into CoreExpr (#14691) (0e022e5)
git at git.haskell.org
git at git.haskell.org
Fri Jan 26 16:52:33 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/0e022e56b130ab9d277965b794e70d8d3fb29533/ghc
>---------------------------------------------------------------
commit 0e022e56b130ab9d277965b794e70d8d3fb29533
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Fri Jan 26 11:50:48 2018 -0500
Turn EvTerm (almost) into CoreExpr (#14691)
Ideally, I'd like to do
type EvTerm = CoreExpr
and the type checker builds the evidence terms as it goes. This failed,
becuase the evidence for `Typeable` refers to local identifiers that are
added *after* the typechecker solves constraints. Therefore, `EvTerm`
stays a data type with two constructors: `EvExpr` for `CoreExpr`
evidence, and `EvTypeable` for the others.
Delted `Note [Memoising typeOf]`, its reference (and presumably
relevance) was removed in 8fa4bf9.
Differential Revision: https://phabricator.haskell.org/D4341
>---------------------------------------------------------------
0e022e56b130ab9d277965b794e70d8d3fb29533
compiler/deSugar/DsBinds.hs | 94 +---------
compiler/deSugar/Match.hs | 4 +-
compiler/ghc.cabal.in | 1 +
compiler/typecheck/Inst.hs | 4 +-
compiler/typecheck/TcCanonical.hs | 34 ++--
compiler/typecheck/TcErrors.hs | 7 +-
compiler/typecheck/TcEvTerm.hs | 69 +++++++
compiler/typecheck/TcEvidence.hs | 206 ++++++++-------------
compiler/typecheck/TcFlatten.hs | 2 +-
compiler/typecheck/TcHsSyn.hs | 100 ++++++----
compiler/typecheck/TcInstDcls.hs | 2 +-
compiler/typecheck/TcInteract.hs | 118 ++++++++----
compiler/typecheck/TcMType.hs | 4 +-
compiler/typecheck/TcPatSyn.hs | 6 +-
compiler/typecheck/TcPluginM.hs | 4 +-
compiler/typecheck/TcRnTypes.hs | 8 +-
compiler/typecheck/TcSMonad.hs | 31 ++--
compiler/types/Type.hs | 2 +-
.../tests/indexed-types/should_fail/T8129.stdout | 2 +-
testsuite/tests/perf/compiler/all.T | 6 +-
20 files changed, 363 insertions(+), 341 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 0e022e56b130ab9d277965b794e70d8d3fb29533
More information about the ghc-commits
mailing list