[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