[commit: ghc] master: More explicit foralls (GHC Proposal 0007) (512eeb9)
git at git.haskell.org
git at git.haskell.org
Sat Oct 27 18:55:15 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/512eeb9bb9a81e915bfab25ca16bc87c62252064/ghc
>---------------------------------------------------------------
commit 512eeb9bb9a81e915bfab25ca16bc87c62252064
Author: Matthew Yacavone <matthew at yacavone.net>
Date: Sat Oct 27 14:01:42 2018 -0400
More explicit foralls (GHC Proposal 0007)
Allow the user to explicitly bind type/kind variables in type and data
family instances (including associated instances), closed type family
equations, and RULES pragmas. Follows the specification of GHC
Proposal 0007, also fixes #2600. Advised by Richard Eisenberg.
This modifies the Template Haskell AST -- old code may break!
Other Changes:
- convert HsRule to a record
- make rnHsSigWcType more general
- add repMaybe to DsMeta
Includes submodule update for Haddock.
Test Plan: validate
Reviewers: goldfire, bgamari, alanz
Subscribers: simonpj, RyanGlScott, goldfire, rwbarton,
thomie, mpickering, carter
GHC Trac Issues: #2600, #14268
Differential Revision: https://phabricator.haskell.org/D4894
>---------------------------------------------------------------
512eeb9bb9a81e915bfab25ca16bc87c62252064
compiler/deSugar/Check.hs | 2 +-
compiler/deSugar/Coverage.hs | 13 +-
compiler/deSugar/Desugar.hs | 8 +-
compiler/deSugar/DsArrows.hs | 2 +-
compiler/deSugar/DsExpr.hs | 4 +-
compiler/deSugar/DsMeta.hs | 189 +++++++++++++--------
compiler/deSugar/Match.hs | 4 +-
compiler/deSugar/PmExpr.hs | 2 +-
compiler/hsSyn/Convert.hs | 63 ++++---
compiler/hsSyn/HsDecls.hs | 85 +++++----
compiler/hsSyn/HsExpr.hs | 22 +--
compiler/hsSyn/HsExtension.hs | 40 +++--
compiler/hsSyn/HsPat.hs | 18 +-
compiler/hsSyn/HsTypes.hs | 22 ++-
compiler/hsSyn/HsUtils.hs | 8 +-
compiler/main/HscMain.hs | 2 +-
compiler/main/HscStats.hs | 3 +-
compiler/parser/Parser.y | 177 +++++++++++++------
compiler/parser/RdrHsSyn.hs | 53 +++++-
compiler/rename/RnBinds.hs | 2 +-
compiler/rename/RnExpr.hs | 14 +-
compiler/rename/RnPat.hs | 6 +-
compiler/rename/RnSource.hs | 123 +++++++++-----
compiler/rename/RnTypes.hs | 53 +++---
compiler/rename/RnUtils.hs | 5 +-
compiler/typecheck/TcAnnotations.hs | 1 +
compiler/typecheck/TcEnv.hs | 1 +
compiler/typecheck/TcExpr.hs | 14 +-
compiler/typecheck/TcGenDeriv.hs | 5 +-
compiler/typecheck/TcHsSyn.hs | 30 ++--
compiler/typecheck/TcInstDcls.hs | 11 +-
compiler/typecheck/TcPat.hs | 4 +-
compiler/typecheck/TcPatSyn.hs | 4 +-
compiler/typecheck/TcRnDriver.hs | 2 +-
compiler/typecheck/TcRnTypes.hs | 2 +-
compiler/typecheck/TcRules.hs | 100 +++++++----
compiler/typecheck/TcSplice.hs | 25 ++-
compiler/typecheck/TcTyClsDecls.hs | 74 ++++++--
docs/users_guide/glasgow_exts.rst | 68 +++++++-
docs/users_guide/using-warnings.rst | 18 +-
ghc/GHCi/UI.hs | 4 +-
.../template-haskell/Language/Haskell/TH/Lib.hs | 21 ++-
.../Language/Haskell/TH/Lib/Internal.hs | 57 ++++---
.../template-haskell/Language/Haskell/TH/Ppr.hs | 41 +++--
.../template-haskell/Language/Haskell/TH/Syntax.hs | 12 +-
libraries/template-haskell/changelog.md | 12 ++
.../tests/ghc-api/annotations/stringSource.hs | 2 +-
testsuite/tests/ghc-api/annotations/t11430.hs | 6 +-
.../should_compile/ExplicitForAllFams1.hs | 31 ++++
.../should_compile/ExplicitForAllFams2.hs | 39 +++++
.../should_compile/ExplicitForAllFams2.stderr | 12 ++
.../should_compile/UnusedTyVarWarnings.stderr | 14 +-
.../UnusedTyVarWarningsNamedWCs.stderr | 14 +-
testsuite/tests/indexed-types/should_compile/all.T | 3 +
.../should_fail/ExplicitForAllFams3.hs | 23 +++
.../should_fail/ExplicitForAllFams3.stderr | 17 ++
.../should_fail/ExplicitForAllFams4a.hs | 8 +
.../should_fail/ExplicitForAllFams4a.stderr | 8 +
.../should_fail/ExplicitForAllFams4b.hs | 26 +++
.../should_fail/ExplicitForAllFams4b.stderr | 44 +++++
testsuite/tests/indexed-types/should_fail/all.T | 4 +
.../parser/should_compile/DumpParsedAst.stderr | 2 +
.../parser/should_compile/DumpRenamedAst.stderr | 3 +
.../tests/parser/should_compile/KindSigs.stderr | 1 +
.../rename/should_compile/ExplicitForAllRules1.hs | 45 +++++
.../should_compile/ExplicitForAllRules1.stderr | 4 +
testsuite/tests/rename/should_compile/T2600.hs | 19 +++
testsuite/tests/rename/should_compile/T2600.stderr | 10 ++
testsuite/tests/rename/should_compile/all.T | 4 +
.../rename/should_fail/ExplicitForAllRules2.hs | 12 ++
.../rename/should_fail/ExplicitForAllRules2.stderr | 10 ++
testsuite/tests/rename/should_fail/all.T | 2 +
testsuite/tests/th/ClosedFam2TH.hs | 6 +-
testsuite/tests/th/T12503.hs | 2 +-
testsuite/tests/th/T12646.stderr | 5 +-
testsuite/tests/th/T13618.hs | 8 +-
testsuite/tests/th/T5886a.hs | 4 +-
testsuite/tests/th/T6018th.hs | 30 ++--
testsuite/tests/th/T6018th.stderr | 6 +-
testsuite/tests/th/T7532a.hs | 2 +-
testsuite/tests/th/T8884.stderr | 5 +-
testsuite/tests/th/T8953.stderr | 10 +-
testsuite/tests/th/TH_ExplicitForAllRules.hs | 9 +
testsuite/tests/th/TH_ExplicitForAllRules.stdout | 3 +
testsuite/tests/th/TH_ExplicitForAllRules_a.hs | 10 ++
testsuite/tests/th/TH_reifyExplicitForAllFams.hs | 35 ++++
.../tests/th/TH_reifyExplicitForAllFams.stderr | 16 ++
testsuite/tests/th/all.T | 4 +
utils/ghctags/Main.hs | 2 +-
utils/haddock | 2 +-
90 files changed, 1411 insertions(+), 537 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 512eeb9bb9a81e915bfab25ca16bc87c62252064
More information about the ghc-commits
mailing list