diff options
author | Richard Eisenberg <eir@cis.upenn.edu> | 2016-02-04 10:42:56 -0500 |
---|---|---|
committer | Richard Eisenberg <eir@cis.upenn.edu> | 2016-02-24 13:31:30 -0500 |
commit | d8c64e86361f6766ebe26a262bb229fb8301a42a (patch) | |
tree | 94d68ebcb1cc6e9eabff08d3cd1d7e61dd99c01e /testsuite/tests/roles/should_compile | |
parent | ce36115b369510c51f402073174d82d0d1244589 (diff) | |
download | haskell-d8c64e86361f6766ebe26a262bb229fb8301a42a.tar.gz |
Address #11471 by putting RuntimeRep in kinds.wip/runtime-rep
See Note [TYPE] in TysPrim. There are still some outstanding
pieces in #11471 though, so this doesn't actually nail the bug.
This commit also contains a few performance improvements:
* Short-cut equality checking of nullary type syns
* Compare types before kinds in eqType
* INLINE coreViewOneStarKind
* Store tycon binders separately from kinds.
This resulted in a ~10% performance improvement in compiling
the Cabal package. No change in functionality other than
performance. (This affects the interface file format, though.)
This commit updates the haddock submodule.
Diffstat (limited to 'testsuite/tests/roles/should_compile')
4 files changed, 2 insertions, 14 deletions
diff --git a/testsuite/tests/roles/should_compile/Roles1.stderr b/testsuite/tests/roles/should_compile/Roles1.stderr index 6ea24f009b..fe0658b56c 100644 --- a/testsuite/tests/roles/should_compile/Roles1.stderr +++ b/testsuite/tests/roles/should_compile/Roles1.stderr @@ -9,23 +9,16 @@ TYPE SIGNATURES TYPE CONSTRUCTORS type role T1 nominal data T1 a = K1 a - Kind: * -> * data T2 a = K2 a - Kind: * -> * type role T3 phantom data T3 (a :: k) = K3 - Kind: forall k1. k1 -> * type role T4 nominal nominal data T4 (a :: * -> *) b = K4 (a b) - Kind: (* -> *) -> * -> * data T5 a = K5 a - Kind: * -> * type role T6 phantom data T6 (a :: k) = K6 - Kind: forall {k1}. k1 -> * type role T7 phantom representational data T7 (a :: k) b = K7 b - Kind: forall {k1}. k1 -> * -> * COERCION AXIOMS Dependent modules: [] Dependent packages: [base-4.9.0.0, ghc-prim-0.5.0.0, diff --git a/testsuite/tests/roles/should_compile/Roles2.stderr b/testsuite/tests/roles/should_compile/Roles2.stderr index 7c075b9bce..65ba748863 100644 --- a/testsuite/tests/roles/should_compile/Roles2.stderr +++ b/testsuite/tests/roles/should_compile/Roles2.stderr @@ -3,10 +3,8 @@ TYPE SIGNATURES Roles2.K2 :: forall a. FunPtr a -> T2 a TYPE CONSTRUCTORS data T1 a = K1 (IO a) - Kind: * -> * type role T2 phantom data T2 a = K2 (FunPtr a) - Kind: * -> * COERCION AXIOMS Dependent modules: [] Dependent packages: [base-4.9.0.0, ghc-prim-0.5.0.0, diff --git a/testsuite/tests/roles/should_compile/Roles3.stderr b/testsuite/tests/roles/should_compile/Roles3.stderr index 544e497c2d..ca496ed042 100644 --- a/testsuite/tests/roles/should_compile/Roles3.stderr +++ b/testsuite/tests/roles/should_compile/Roles3.stderr @@ -11,15 +11,13 @@ TYPE CONSTRUCTORS meth2 :: a ~ b => a -> b {-# MINIMAL meth2 #-} class C3 a b where - type family F3 b open - Kind: * -> * + type family F3 b :: * open meth3 :: a -> F3 b -> F3 b {-# MINIMAL meth3 #-} class C4 a b where meth4 :: a -> F4 b -> F4 b {-# MINIMAL meth4 #-} - type family F4 a open - Kind: * -> * + type family F4 a :: * open type Syn1 a = F4 a type Syn2 a = [a] COERCION AXIOMS diff --git a/testsuite/tests/roles/should_compile/T8958.stderr b/testsuite/tests/roles/should_compile/T8958.stderr index 91b58a1ba6..9b4e2d911c 100644 --- a/testsuite/tests/roles/should_compile/T8958.stderr +++ b/testsuite/tests/roles/should_compile/T8958.stderr @@ -6,7 +6,6 @@ TYPE SIGNATURES TYPE CONSTRUCTORS type role Map nominal representational newtype (Nominal k, Representational v) => Map k v = MkMap [(k, v)] - Kind: * -> * -> * class Nominal a type role Representational representational class Representational a |