[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