[commit: ghc] master: Visible type application (2db18b8)

git at git.haskell.org git at git.haskell.org
Thu Dec 24 19:37:11 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/2db18b8135335da2da9918b722699df684097be9/ghc

>---------------------------------------------------------------

commit 2db18b8135335da2da9918b722699df684097be9
Author: Richard Eisenberg <eir at cis.upenn.edu>
Date:   Thu Dec 24 14:33:19 2015 -0500

    Visible type application
    
    This re-working of the typechecker algorithm is based on
    the paper "Visible type application", by Richard Eisenberg,
    Stephanie Weirich, and Hamidhasan Ahmed, to be published at
    ESOP'16.
    
    This patch introduces -XTypeApplications, which allows users
    to say, for example `id @Int`, which has type `Int -> Int`. See
    the changes to the user manual for details.
    
    This patch addresses tickets #10619, #5296, #10589.


>---------------------------------------------------------------

2db18b8135335da2da9918b722699df684097be9
 compiler/basicTypes/DataCon.hs                     |   6 +-
 compiler/basicTypes/MkId.hs                        |  36 +-
 compiler/basicTypes/PatSyn.hs                      |   6 +-
 compiler/coreSyn/MkCore.hs                         |  12 +-
 compiler/deSugar/Coverage.hs                       |   6 +-
 compiler/deSugar/DsArrows.hs                       |   4 +-
 compiler/deSugar/DsBinds.hs                        |  30 +-
 compiler/deSugar/DsExpr.hs                         |   8 +-
 compiler/deSugar/Match.hs                          |   2 +-
 compiler/hsSyn/HsBinds.hs                          |  39 +-
 compiler/hsSyn/HsExpr.hs                           |  35 +-
 compiler/hsSyn/HsUtils.hs                          |  26 +-
 compiler/hsSyn/PlaceHolder.hs                      |   5 +-
 compiler/iface/IfaceSyn.hs                         |   2 +-
 compiler/iface/IfaceType.hs                        |  15 +-
 compiler/main/DynFlags.hs                          |   2 +
 compiler/main/PprTyThing.hs                        |  12 +-
 compiler/parser/Lexer.x                            |  48 +-
 compiler/parser/Parser.y                           |   9 +
 compiler/prelude/PrimOp.hs                         |   2 +-
 compiler/prelude/TysPrim.hs                        |  16 +-
 compiler/prelude/TysWiredIn.hs                     |   6 +-
 compiler/rename/RnExpr.hs                          |  13 +-
 compiler/rename/RnSplice.hs                        |   4 +-
 compiler/rename/RnTypes.hs                         |   3 +-
 compiler/typecheck/Inst.hs                         | 126 +++-
 compiler/typecheck/TcArrows.hs                     |   6 +-
 compiler/typecheck/TcBinds.hs                      | 298 ++++++--
 compiler/typecheck/TcClassDcl.hs                   |   9 +-
 compiler/typecheck/TcErrors.hs                     |   8 +-
 compiler/typecheck/TcEvidence.hs                   |  53 +-
 compiler/typecheck/TcExpr.hs                       | 831 ++++++++++++---------
 compiler/typecheck/TcExpr.hs-boot                  |   6 +-
 compiler/typecheck/TcGenDeriv.hs                   |   8 +-
 compiler/typecheck/TcHsSyn.hs                      |  28 +-
 compiler/typecheck/TcHsType.hs                     |  27 +-
 compiler/typecheck/TcInstDcls.hs                   |  23 +-
 compiler/typecheck/TcMType.hs                      |  30 +-
 compiler/typecheck/TcMatches.hs                    | 162 ++--
 compiler/typecheck/TcPat.hs                        | 143 ++--
 compiler/typecheck/TcPatSyn.hs                     |  60 +-
 compiler/typecheck/TcRnDriver.hs                   |   2 +-
 compiler/typecheck/TcRnMonad.hs                    |  14 +-
 compiler/typecheck/TcRnTypes.hs                    |  95 ++-
 compiler/typecheck/TcSplice.hs                     |  15 +-
 compiler/typecheck/TcTyDecls.hs                    |  40 +-
 compiler/typecheck/TcType.hs                       |  77 +-
 compiler/typecheck/TcUnify.hs                      | 475 ++++++++----
 compiler/typecheck/TcValidity.hs                   |  15 +-
 compiler/types/TyCoRep.hs                          | 152 +++-
 compiler/types/Type.hs                             |  28 +-
 docs/users_guide/7.12.1-notes.rst                  |   5 +
 docs/users_guide/glasgow_exts.rst                  |  50 ++
 libraries/base/tests/T9681.stderr                  |   2 +-
 libraries/ghc-boot/GHC/LanguageExtensions.hs       |   1 +
 testsuite/tests/ado/ado002.stderr                  | 108 ++-
 .../tests/annotations/should_fail/annfail08.stderr |   2 +-
 testsuite/tests/arrows/should_fail/T5380.stderr    |   3 +
 testsuite/tests/boxy/all.T                         |   4 +-
 .../tests/deSugar/should_compile/T2431.stderr      |   8 +-
 testsuite/tests/driver/T2182.stderr                |   4 +-
 testsuite/tests/driver/T4437.hs                    |   3 +-
 testsuite/tests/driver/werror.stderr               |  20 +-
 testsuite/tests/gadt/T3169.stderr                  |   3 +
 testsuite/tests/gadt/gadt-escape1.stderr           |   4 +-
 testsuite/tests/gadt/gadt13.stderr                 |   9 +-
 testsuite/tests/gadt/gadt7.stderr                  |   1 +
 testsuite/tests/gadt/rw.stderr                     |  11 +-
 testsuite/tests/ghc-api/annotations/T10280.stderr  |   4 +-
 testsuite/tests/ghc-api/annotations/T10357.stderr  |  24 +-
 .../tests/ghci.debugger/scripts/break003.stderr    |   6 +-
 .../tests/ghci.debugger/scripts/break003.stdout    |   8 +-
 .../tests/ghci.debugger/scripts/break005.stdout    |   4 +-
 .../tests/ghci.debugger/scripts/break006.stderr    |  12 +-
 .../tests/ghci.debugger/scripts/break006.stdout    |  10 +-
 .../tests/ghci.debugger/scripts/hist001.stdout     |  28 +-
 testsuite/tests/ghci/scripts/Defer02.stderr        |  11 +-
 testsuite/tests/ghci/scripts/T10122.stdout         |   2 +-
 testsuite/tests/ghci/scripts/T10508.stderr         |  18 +-
 testsuite/tests/ghci/scripts/T7627.stdout          |  10 +-
 testsuite/tests/ghci/scripts/T8649.stderr          |   1 +
 testsuite/tests/ghci/scripts/T8959b.stderr         |  26 +-
 testsuite/tests/ghci/scripts/ghci013.stdout        |   2 +-
 testsuite/tests/ghci/scripts/ghci025.stdout        |  24 +-
 testsuite/tests/ghci/scripts/ghci047.stderr        |   6 +-
 testsuite/tests/ghci/scripts/ghci050.stderr        |  22 +-
 testsuite/tests/ghci/scripts/ghci052.stderr        |   3 +
 testsuite/tests/ghci/scripts/ghci053.stderr        |   2 +
 testsuite/tests/ghci/scripts/ghci055.stdout        |   2 +-
 .../should_compile/PushedInAsGivens.stderr         |   1 +
 .../indexed-types/should_fail/GADTwrong1.stderr    |   1 +
 .../tests/indexed-types/should_fail/T2544.stderr   |  38 +-
 .../tests/indexed-types/should_fail/T2693.stderr   |   8 +
 .../tests/indexed-types/should_fail/T3330a.stderr  |   2 +
 .../tests/indexed-types/should_fail/T3330c.stderr  |   3 +-
 .../tests/indexed-types/should_fail/T3440.stderr   |   1 +
 .../tests/indexed-types/should_fail/T4099.stderr   |  40 +-
 .../tests/indexed-types/should_fail/T4179.stderr   |  13 +-
 .../tests/indexed-types/should_fail/T4485.stderr   |  53 +-
 .../tests/indexed-types/should_fail/T5439.stderr   |   4 +
 .../tests/indexed-types/should_fail/T7010.stderr   |  13 +-
 .../tests/indexed-types/should_fail/T7194.stderr   |   1 +
 .../tests/indexed-types/should_fail/T7354.stderr   |  19 +-
 .../tests/indexed-types/should_fail/T7354a.stderr  |  11 +-
 .../tests/indexed-types/should_fail/T7729.stderr   |  19 +-
 .../tests/indexed-types/should_fail/T7729a.stderr  |  23 +-
 .../tests/indexed-types/should_fail/T7788.stderr   |  17 +-
 .../tests/indexed-types/should_fail/T8227.stderr   |   2 +
 .../tests/indexed-types/should_fail/T8518.stderr   |  56 +-
 .../tests/indexed-types/should_fail/T9554.stderr   |  42 +-
 .../tests/indexed-types/should_fail/T9662.stderr   |   9 +-
 testsuite/tests/module/mod121.stderr               |   4 +-
 testsuite/tests/module/mod147.stderr               |   0
 testsuite/tests/module/mod160.stderr               |   6 +-
 testsuite/tests/module/mod69.stderr                |   4 +-
 testsuite/tests/module/mod70.stderr                |   4 +-
 .../should_fail/overloadedrecfldsfail07.stderr     |  11 +-
 testsuite/tests/parser/should_compile/T2245.stderr |   6 +-
 testsuite/tests/parser/should_compile/VtaParse.hs  |  63 ++
 testsuite/tests/parser/should_compile/all.T        |   1 +
 .../tests/parser/should_compile/read014.stderr     |   8 +-
 .../tests/parser/should_fail/readFail003.stderr    |   4 +-
 .../partial-sigs/should_compile/T10403.stderr      |   5 +-
 .../partial-sigs/should_compile/T10438.stderr      |   2 +-
 ...ConstraintsWildcardInExpressionSignature.stderr |   2 +-
 ...traConstraintsWildcardInPatternSignature.stderr |   2 +-
 .../partial-sigs/should_fail/Forall1Bad.stderr     |   8 +-
 .../should_fail/NamedWildcardExplicitForall.stderr |   7 +-
 .../should_fail/NamedWildcardsNotEnabled.stderr    |   1 +
 .../should_fail/ScopedNamedWildcardsBad.stderr     |   9 +-
 .../patsyn/should_fail/records-poly-update.stderr  |   7 +-
 testsuite/tests/perf/compiler/all.T                |   3 +-
 testsuite/tests/polykinds/T10503.stderr            |   2 -
 testsuite/tests/polykinds/T6068.stdout             |   0
 testsuite/tests/polykinds/T7438.stderr             |   8 +-
 testsuite/tests/polykinds/T7594.stderr             |   1 +
 testsuite/tests/polykinds/T9144.stderr             |  14 +-
 testsuite/tests/polykinds/TidyClassKinds.hs        |  13 +
 testsuite/tests/polykinds/TidyClassKinds.stderr    |   8 +
 testsuite/tests/polykinds/all.T                    |   1 +
 testsuite/tests/rename/should_compile/T3823.stderr |   3 +-
 testsuite/tests/rename/should_fail/T10618.stderr   |   8 +-
 testsuite/tests/rename/should_fail/T2993.stderr    |   4 +-
 testsuite/tests/rename/should_fail/T7937.stderr    |   4 +-
 testsuite/tests/rename/should_fail/mc13.stderr     |   0
 .../tests/rename/should_fail/rnfail016.stderr      |   8 +-
 .../tests/rename/should_fail/rnfail051.stderr      |   3 +-
 testsuite/tests/roles/should_compile/Roles1.stderr |  74 +-
 testsuite/tests/roles/should_compile/T8958.stderr  |   2 +
 testsuite/tests/rts/T9045.hs                       |   2 +-
 testsuite/tests/safeHaskell/ghci/p16.stderr        |  12 +-
 testsuite/tests/safeHaskell/ghci/p6.stderr         |  12 +-
 .../tests/simplCore/should_compile/T7360.stderr    |  24 +-
 .../tests/simplCore/should_compile/simpl017.stderr |  58 +-
 testsuite/tests/th/T10945.stderr                   |  59 +-
 testsuite/tests/th/T8577.stderr                    |   3 +-
 testsuite/tests/typecheck/bug1465/bug1465.stderr   |   1 +
 .../tests/typecheck/should_compile/FD1.stderr      |   2 +-
 .../tests/typecheck/should_compile/FD2.stderr      |  15 +-
 .../tests/typecheck/should_compile/PushHRIf.hs     |   7 +
 .../tests/typecheck/should_compile/T10072.stderr   |  10 +-
 .../tests/typecheck/should_compile/T10971a.stderr  |   4 +-
 .../tests/typecheck/should_compile/T2494.stderr    |  58 +-
 testsuite/tests/typecheck/should_compile/Vta1.hs   |  95 +++
 testsuite/tests/typecheck/should_compile/Vta2.hs   |  14 +
 testsuite/tests/typecheck/should_compile/all.T     |   3 +
 .../tests/typecheck/should_compile/holes.stderr    |  48 +-
 .../tests/typecheck/should_compile/holes3.stderr   |  54 +-
 .../tests/typecheck/should_compile/tc141.stderr    |  16 +-
 .../tests/typecheck/should_compile/tc168.stderr    |  20 +-
 .../tests/typecheck/should_compile/tc211.stderr    |  77 +-
 .../tests/typecheck/should_compile/tc243.stderr    |   4 +-
 .../should_fail/CustomTypeErrors01.stderr          |   8 +-
 .../typecheck/should_fail/ExpandSynsFail2.stderr   |  19 +-
 .../tests/typecheck/should_fail/T10495.stderr      |  13 +-
 .../tests/typecheck/should_fail/T10971d.stderr     |  25 +-
 .../tests/typecheck/should_fail/T11274.stderr      |   2 +-
 testsuite/tests/typecheck/should_fail/T1899.stderr |   1 +
 testsuite/tests/typecheck/should_fail/T2414.stderr |  13 +-
 testsuite/tests/typecheck/should_fail/T2534.stderr |  15 +-
 testsuite/tests/typecheck/should_fail/T2688.stderr |  20 +-
 .../tests/typecheck/should_fail/T2846b.stderr      |   8 +-
 testsuite/tests/typecheck/should_fail/T3102.stderr |  19 +-
 testsuite/tests/typecheck/should_fail/T3613.stderr |  30 +-
 testsuite/tests/typecheck/should_fail/T3950.stderr |  15 +-
 testsuite/tests/typecheck/should_fail/T5095.stderr |   2 +-
 testsuite/tests/typecheck/should_fail/T5689.stderr |  14 +-
 testsuite/tests/typecheck/should_fail/T5853.stderr |   2 +-
 testsuite/tests/typecheck/should_fail/T6069.stderr |  39 +-
 testsuite/tests/typecheck/should_fail/T7264.stderr |  21 +-
 testsuite/tests/typecheck/should_fail/T7368.stderr |   1 +
 testsuite/tests/typecheck/should_fail/T7453.stderr |  26 +-
 testsuite/tests/typecheck/should_fail/T7734.stderr |   2 +
 testsuite/tests/typecheck/should_fail/T7851.stderr |  19 +-
 testsuite/tests/typecheck/should_fail/T8142.stderr |  43 +-
 testsuite/tests/typecheck/should_fail/T8428.stderr |  16 +-
 testsuite/tests/typecheck/should_fail/T8603.stderr |  15 +-
 testsuite/tests/typecheck/should_fail/T9109.stderr |   7 +-
 testsuite/tests/typecheck/should_fail/T9774.stderr |  14 +-
 .../typecheck/should_fail/TcCoercibleFail.stderr   |  12 +-
 .../should_fail/TcStaticPointersFail01.stderr      |  11 +-
 testsuite/tests/typecheck/should_fail/VtaFail.hs   |  57 ++
 .../tests/typecheck/should_fail/VtaFail.stderr     |  94 +++
 testsuite/tests/typecheck/should_fail/all.T        |   3 +-
 testsuite/tests/typecheck/should_fail/mc19.stderr  |  19 +-
 testsuite/tests/typecheck/should_fail/mc21.stderr  |  20 +-
 testsuite/tests/typecheck/should_fail/mc22.stderr  |  43 +-
 testsuite/tests/typecheck/should_fail/mc23.stderr  |  17 +-
 testsuite/tests/typecheck/should_fail/mc24.stderr  |  18 +-
 testsuite/tests/typecheck/should_fail/mc25.stderr  |  30 +-
 .../tests/typecheck/should_fail/tcfail001.stderr   |  13 +-
 .../tests/typecheck/should_fail/tcfail002.stderr   |   6 +-
 .../tests/typecheck/should_fail/tcfail004.stderr   |   6 +-
 .../tests/typecheck/should_fail/tcfail005.stderr   |   6 +-
 .../tests/typecheck/should_fail/tcfail007.stderr   |  14 +-
 .../tests/typecheck/should_fail/tcfail010.stderr   |  10 +-
 .../tests/typecheck/should_fail/tcfail013.stderr   |   4 +-
 .../tests/typecheck/should_fail/tcfail014.stderr   |   1 +
 .../tests/typecheck/should_fail/tcfail016.stderr   |  42 +-
 .../tests/typecheck/should_fail/tcfail018.stderr   |   8 +-
 .../tests/typecheck/should_fail/tcfail029.stderr   |   8 +-
 .../tests/typecheck/should_fail/tcfail032.stderr   |   2 +-
 .../tests/typecheck/should_fail/tcfail033.stderr   |  17 +-
 .../tests/typecheck/should_fail/tcfail034.stderr   |  26 +-
 .../tests/typecheck/should_fail/tcfail065.stderr   |  11 +-
 .../tests/typecheck/should_fail/tcfail068.stderr   |  47 +-
 .../tests/typecheck/should_fail/tcfail076.stderr   |   1 +
 .../tests/typecheck/should_fail/tcfail099.stderr   |   1 +
 .../tests/typecheck/should_fail/tcfail103.stderr   |  41 +-
 .../tests/typecheck/should_fail/tcfail104.stderr   |  24 +-
 .../tests/typecheck/should_fail/tcfail131.stderr   |   7 +-
 .../tests/typecheck/should_fail/tcfail133.stderr   |   3 +-
 .../tests/typecheck/should_fail/tcfail140.stderr   |   8 +-
 .../tests/typecheck/should_fail/tcfail143.stderr   |  14 +-
 .../tests/typecheck/should_fail/tcfail153.stderr   |  33 +-
 testsuite/tests/typecheck/should_fail/tcfail165.hs |   3 +-
 .../tests/typecheck/should_fail/tcfail165.stderr   |  12 -
 .../tests/typecheck/should_fail/tcfail168.stderr   |  28 +-
 testsuite/tests/typecheck/should_fail/tcfail174.hs |   2 +-
 .../tests/typecheck/should_fail/tcfail174.stderr   |  61 +-
 .../tests/typecheck/should_fail/tcfail175.stderr   |   4 +-
 .../tests/typecheck/should_fail/tcfail178.stderr   |  26 +-
 .../tests/typecheck/should_fail/tcfail179.stderr   |  11 +-
 .../tests/typecheck/should_fail/tcfail181.stderr   |  29 +-
 .../tests/typecheck/should_fail/tcfail185.stderr   |  26 +-
 .../tests/typecheck/should_fail/tcfail189.stderr   |  16 +-
 .../tests/typecheck/should_fail/tcfail191.stderr   |  20 +-
 .../tests/typecheck/should_fail/tcfail193.stderr   |  19 +-
 .../tests/typecheck/should_fail/tcfail198.stderr   |  24 +-
 .../tests/typecheck/should_fail/tcfail201.stderr   |  11 +-
 .../tests/typecheck/should_fail/tcfail204.stderr   |   2 +-
 .../tests/typecheck/should_fail/tcfail206.stderr   |  86 +--
 .../tests/typecheck/should_fail/tcfail208.stderr   |  16 +-
 testsuite/tests/typecheck/should_run/all.T         |   2 +-
 .../tests/typecheck/should_run/tcrun035.stderr     |  11 -
 .../tests/warnings/should_compile/PluralS.stderr   |   2 +-
 .../tests/warnings/should_compile/T11077.stderr    |   2 +-
 257 files changed, 4055 insertions(+), 2269 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 2db18b8135335da2da9918b722699df684097be9


More information about the ghc-commits mailing list