[commit: ghc] master: Adding almost devoid check for covar in ForAllCo (879db55)
git at git.haskell.org
git at git.haskell.org
Fri Oct 19 09:43:50 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/879db5595208fb665ff1a0a2b12b9921d3efae0e/ghc
>---------------------------------------------------------------
commit 879db5595208fb665ff1a0a2b12b9921d3efae0e
Author: Ningning Xie <xnningxie at gmail.com>
Date: Fri Oct 19 17:10:08 2018 +0800
Adding almost devoid check for covar in ForAllCo
Summary:
For the sake of consistency of the dependent core, there is a restriction on
where a coercion variable can appear in ForAllCo: the coercion variable can
appear nowhere except in coherence coercions.
Currently this restriction is missing in Core. The goal of this patch is to add
the missing restriction.
After discussion, we decide: coercion variables can appear nowhere except in
`GRefl` and `Refl`. Relaxing the restriction to include `Refl` should not break
consistency, we premuse.
Test Plan: ./validate
Reviewers: goldfire, simonpj, bgamari
Reviewed By: goldfire
Subscribers: rwbarton, carter
GHC Trac Issues: #15757
Differential Revision: https://phabricator.haskell.org/D5231
>---------------------------------------------------------------
879db5595208fb665ff1a0a2b12b9921d3efae0e
compiler/coreSyn/CoreLint.hs | 4 +-
compiler/types/Coercion.hs | 53 +++++++++++++++--------
compiler/types/Coercion.hs-boot | 2 +-
compiler/types/TyCoRep.hs | 96 ++++++++++++++++++++++++++++++++++++++++-
4 files changed, 132 insertions(+), 23 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 879db5595208fb665ff1a0a2b12b9921d3efae0e
More information about the ghc-commits
mailing list