diff options
author | HaskellMouse <rinat.stryungis@serokell.io> | 2022-04-27 06:19:45 +0300 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-06-06 09:50:00 -0400 |
commit | 9ce9ea5071af5c7a5b6fcef11ac6e19c14480901 (patch) | |
tree | 7d6113e6e2eef0cefebf4302dda8ff4bec157b73 /testsuite/tests/typecheck | |
parent | 5a3fdcfd615b502f123bb31f42d22577d44748ac (diff) | |
download | haskell-9ce9ea5071af5c7a5b6fcef11ac6e19c14480901.tar.gz |
Deprecate TypeInType extension
This commit fixes #20312
It deprecates "TypeInType" extension
according to the following proposal:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0083-no-type-in-type.rst
It has been already implemented.
The migration strategy:
1. Disable TypeInType
2. Enable both DataKinds and PolyKinds extensions
Metric Decrease:
T16875
Diffstat (limited to 'testsuite/tests/typecheck')
30 files changed, 52 insertions, 41 deletions
diff --git a/testsuite/tests/typecheck/no_skolem_info/T14040.hs b/testsuite/tests/typecheck/no_skolem_info/T14040.hs index 202c4600b2..eb5da8d01e 100644 --- a/testsuite/tests/typecheck/no_skolem_info/T14040.hs +++ b/testsuite/tests/typecheck/no_skolem_info/T14040.hs @@ -3,7 +3,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T14040 where import Data.Kind diff --git a/testsuite/tests/typecheck/no_skolem_info/T14040.stderr b/testsuite/tests/typecheck/no_skolem_info/T14040.stderr index fb4cc3f897..73e01979dd 100644 --- a/testsuite/tests/typecheck/no_skolem_info/T14040.stderr +++ b/testsuite/tests/typecheck/no_skolem_info/T14040.stderr @@ -1,5 +1,5 @@ -T14040.hs:26:46: error: +T14040.hs:27:46: error: • Couldn't match kind ‘k1’ with ‘WeirdList z’ Expected kind ‘WeirdList k1’, but ‘xs’ has kind ‘WeirdList (WeirdList z)’ @@ -7,7 +7,7 @@ T14040.hs:26:46: error: This (rigid, skolem) kind variable is bound by an explicit forall (z :: Type) (x :: z) (xs :: WeirdList (WeirdList z)) - at T14040.hs:25:26-77 + at T14040.hs:26:26-77 • In the second argument of ‘p’, namely ‘xs’ In the type ‘Sing wl -> (forall (y :: Type). p _ WeirdNil) @@ -29,7 +29,7 @@ T14040.hs:26:46: error: -> p _ (WeirdCons x xs)) -> p _ wl -T14040.hs:27:27: error: +T14040.hs:28:27: error: • Couldn't match kind ‘k0’ with ‘z’ Expected kind ‘WeirdList k0’, but ‘WeirdCons x xs’ has kind ‘WeirdList z’ @@ -37,7 +37,7 @@ T14040.hs:27:27: error: This (rigid, skolem) kind variable is bound by an explicit forall (z :: Type) (x :: z) (xs :: WeirdList (WeirdList z)) - at T14040.hs:25:26-77 + at T14040.hs:26:26-77 • In the second argument of ‘p’, namely ‘(WeirdCons x xs)’ In the type ‘Sing wl -> (forall (y :: Type). p _ WeirdNil) diff --git a/testsuite/tests/typecheck/no_skolem_info/T14040A.hs b/testsuite/tests/typecheck/no_skolem_info/T14040A.hs index 183a894398..c679fd7cd1 100644 --- a/testsuite/tests/typecheck/no_skolem_info/T14040A.hs +++ b/testsuite/tests/typecheck/no_skolem_info/T14040A.hs @@ -1,6 +1,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module Bug where import Data.Kind diff --git a/testsuite/tests/typecheck/no_skolem_info/T14040A.stderr b/testsuite/tests/typecheck/no_skolem_info/T14040A.stderr index fca04623b0..554a4e0a32 100644 --- a/testsuite/tests/typecheck/no_skolem_info/T14040A.stderr +++ b/testsuite/tests/typecheck/no_skolem_info/T14040A.stderr @@ -1,5 +1,5 @@ -T14040A.hs:12:8: error: +T14040A.hs:13:8: error: • Cannot generalise type; skolem ‘a’ would escape its scope if I tried to quantify (x0 :: a) in this type: forall a (f :: forall (x :: a). Proxy @{a} x -> *). diff --git a/testsuite/tests/typecheck/should_compile/T11506.hs b/testsuite/tests/typecheck/should_compile/T11506.hs index a5db195e38..7f23ac8337 100644 --- a/testsuite/tests/typecheck/should_compile/T11506.hs +++ b/testsuite/tests/typecheck/should_compile/T11506.hs @@ -1,5 +1,5 @@ {-# LANGUAGE PolyKinds, ExistentialQuantification, ScopedTypeVariables, - TypeFamilies, TypeInType #-} + TypeFamilies, DataKinds #-} module T11506 where diff --git a/testsuite/tests/typecheck/should_compile/T12045a.hs b/testsuite/tests/typecheck/should_compile/T12045a.hs index 469a3307a7..a5c29c83c7 100644 --- a/testsuite/tests/typecheck/should_compile/T12045a.hs +++ b/testsuite/tests/typecheck/should_compile/T12045a.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE PolyKinds, GADTs, TypeApplications, TypeInType, DataKinds, +{-# LANGUAGE PolyKinds, GADTs, TypeApplications, DataKinds, RankNTypes, ConstraintKinds, TypeFamilies #-} module T12045a where diff --git a/testsuite/tests/typecheck/should_compile/T14366.hs b/testsuite/tests/typecheck/should_compile/T14366.hs index 9405c9b91b..52bc3a4338 100644 --- a/testsuite/tests/typecheck/should_compile/T14366.hs +++ b/testsuite/tests/typecheck/should_compile/T14366.hs @@ -1,6 +1,7 @@ {-# LANGUAGE Haskell2010 #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} module T14366 where diff --git a/testsuite/tests/typecheck/should_compile/T14451.hs b/testsuite/tests/typecheck/should_compile/T14451.hs index 40f03e3ece..1d4493d20d 100644 --- a/testsuite/tests/typecheck/should_compile/T14451.hs +++ b/testsuite/tests/typecheck/should_compile/T14451.hs @@ -1,5 +1,5 @@ {-# LANGUAGE Haskell2010 #-} -{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, ConstraintKinds, TypeFamilies, DataKinds, TypeInType, GADTs, AllowAmbiguousTypes, InstanceSigs, RankNTypes, UndecidableInstances #-} +{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, ConstraintKinds, TypeFamilies, DataKinds, GADTs, AllowAmbiguousTypes, InstanceSigs, RankNTypes, UndecidableInstances #-} module T14451 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_compile/T15412.hs b/testsuite/tests/typecheck/should_compile/T15412.hs index 6458ae0a74..3996b1da48 100644 --- a/testsuite/tests/typecheck/should_compile/T15412.hs +++ b/testsuite/tests/typecheck/should_compile/T15412.hs @@ -1,4 +1,4 @@ -{-# Language DataKinds, TypeInType, TypeFamilies, UndecidableInstances #-} +{-# Language DataKinds, PolyKinds, TypeFamilies, UndecidableInstances #-} module T15412 where diff --git a/testsuite/tests/typecheck/should_compile/T15428.hs b/testsuite/tests/typecheck/should_compile/T15428.hs index a9d1cdd3b3..7ffcd88085 100644 --- a/testsuite/tests/typecheck/should_compile/T15428.hs +++ b/testsuite/tests/typecheck/should_compile/T15428.hs @@ -1,6 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T15428 where data Flurmp diff --git a/testsuite/tests/typecheck/should_compile/T15778.hs b/testsuite/tests/typecheck/should_compile/T15778.hs index 4c95d37c7c..37290e9f14 100644 --- a/testsuite/tests/typecheck/should_compile/T15778.hs +++ b/testsuite/tests/typecheck/should_compile/T15778.hs @@ -1,5 +1,6 @@ {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T15778 where diff --git a/testsuite/tests/typecheck/should_compile/T16225.hs b/testsuite/tests/typecheck/should_compile/T16225.hs index 85c5441327..bac7d87574 100644 --- a/testsuite/tests/typecheck/should_compile/T16225.hs +++ b/testsuite/tests/typecheck/should_compile/T16225.hs @@ -1,7 +1,8 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} module T16225 where diff --git a/testsuite/tests/typecheck/should_compile/T17723a.hs b/testsuite/tests/typecheck/should_compile/T17723a.hs index e808aa77f5..b36ff8c727 100644 --- a/testsuite/tests/typecheck/should_compile/T17723a.hs +++ b/testsuite/tests/typecheck/should_compile/T17723a.hs @@ -3,7 +3,6 @@ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} module T17723a (C(..)) where diff --git a/testsuite/tests/typecheck/should_compile/type_in_type_hole_fits.hs b/testsuite/tests/typecheck/should_compile/type_in_type_hole_fits.hs index 982d7e596c..df0cb353fa 100644 --- a/testsuite/tests/typecheck/should_compile/type_in_type_hole_fits.hs +++ b/testsuite/tests/typecheck/should_compile/type_in_type_hole_fits.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeInType, TypeOperators, TypeFamilies, +{-# LANGUAGE DataKinds, PolyKinds, TypeOperators, TypeFamilies, UndecidableInstances, ConstraintKinds #-} module TypeInTypeSubstitutions where diff --git a/testsuite/tests/typecheck/should_fail/T12102.hs b/testsuite/tests/typecheck/should_fail/T12102.hs index b17c9937c8..2439c52499 100644 --- a/testsuite/tests/typecheck/should_fail/T12102.hs +++ b/testsuite/tests/typecheck/should_fail/T12102.hs @@ -1,5 +1,6 @@ {-# LANGUAGE GADTs #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} diff --git a/testsuite/tests/typecheck/should_fail/T15330.hs b/testsuite/tests/typecheck/should_fail/T15330.hs index 0041806244..c7d8120927 100644 --- a/testsuite/tests/typecheck/should_fail/T15330.hs +++ b/testsuite/tests/typecheck/should_fail/T15330.hs @@ -1,5 +1,6 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T15330 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T15330.stderr b/testsuite/tests/typecheck/should_fail/T15330.stderr index c2bf2447cc..43e6b473eb 100644 --- a/testsuite/tests/typecheck/should_fail/T15330.stderr +++ b/testsuite/tests/typecheck/should_fail/T15330.stderr @@ -1,5 +1,5 @@ -T15330.hs:11:6: error: +T15330.hs:12:6: error: • Couldn't match type: [Char] with: Proxy (T 'True) Expected: Proxy (T 'True) @@ -7,7 +7,7 @@ T15330.hs:11:6: error: • In the expression: "foo" In an equation for ‘f1’: f1 = "foo" -T15330.hs:15:6: error: +T15330.hs:16:6: error: • Couldn't match type: [Char] with: Proxy (t 'True) Expected: Proxy (t 'True) @@ -15,4 +15,4 @@ T15330.hs:15:6: error: • In the expression: "foo" In an equation for ‘f2’: f2 = "foo" • Relevant bindings include - f2 :: Proxy (t 'True) (bound at T15330.hs:15:1) + f2 :: Proxy (t 'True) (bound at T15330.hs:16:1) diff --git a/testsuite/tests/typecheck/should_fail/T15474.hs b/testsuite/tests/typecheck/should_fail/T15474.hs index 2fb68e8020..b18ce29784 100644 --- a/testsuite/tests/typecheck/should_fail/T15474.hs +++ b/testsuite/tests/typecheck/should_fail/T15474.hs @@ -1,5 +1,6 @@ {-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T15474 where import Data.Kind (Type) diff --git a/testsuite/tests/typecheck/should_fail/T15474.stderr b/testsuite/tests/typecheck/should_fail/T15474.stderr index 7fd96ebaa1..98f64213d9 100644 --- a/testsuite/tests/typecheck/should_fail/T15474.stderr +++ b/testsuite/tests/typecheck/should_fail/T15474.stderr @@ -1,5 +1,5 @@ -T15474.hs:9:1: error: +T15474.hs:10:1: error: • Uninferrable type variable k0 in the type synonym right-hand side: forall (t :: k0). Proxy @{k0} t • In the type declaration for ‘Forall’ diff --git a/testsuite/tests/typecheck/should_fail/T15515.hs b/testsuite/tests/typecheck/should_fail/T15515.hs index 3630609827..a36191b113 100644 --- a/testsuite/tests/typecheck/should_fail/T15515.hs +++ b/testsuite/tests/typecheck/should_fail/T15515.hs @@ -1,6 +1,7 @@ {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} module T15515 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T15515.stderr b/testsuite/tests/typecheck/should_fail/T15515.stderr index ded60fc30f..7e5bf02761 100644 --- a/testsuite/tests/typecheck/should_fail/T15515.stderr +++ b/testsuite/tests/typecheck/should_fail/T15515.stderr @@ -1,5 +1,5 @@ -T15515.hs:16:10: error: +T15515.hs:17:10: error: • Illegal type synonym family application ‘F’ in instance: C @{F -> *} D • In the instance declaration for ‘C (D :: F -> Type)’ diff --git a/testsuite/tests/typecheck/should_fail/T15552.hs b/testsuite/tests/typecheck/should_fail/T15552.hs index f1952cc10b..b45c3912a5 100644 --- a/testsuite/tests/typecheck/should_fail/T15552.hs +++ b/testsuite/tests/typecheck/should_fail/T15552.hs @@ -1,5 +1,5 @@ {-# LANGUAGE DataKinds, ExistentialQuantification, GADTs, PolyKinds, TypeOperators #-} -{-# LANGUAGE TypeInType, TypeFamilies #-} +{-# LANGUAGE TypeFamilies #-} module T15552 where import Data.Kind diff --git a/testsuite/tests/typecheck/should_fail/T15552a.hs b/testsuite/tests/typecheck/should_fail/T15552a.hs index 67fa4dd741..a6cc56f99d 100644 --- a/testsuite/tests/typecheck/should_fail/T15552a.hs +++ b/testsuite/tests/typecheck/should_fail/T15552a.hs @@ -1,6 +1,6 @@ {-# LANGUAGE Haskell2010 #-} {-# LANGUAGE DataKinds, ExistentialQuantification, GADTs, PolyKinds, TypeOperators #-} -{-# LANGUAGE TypeInType, TypeFamilies #-} +{-# LANGUAGE TypeFamilies #-} {- # LANGUAGE UndecidableInstances #-} module T15552 where diff --git a/testsuite/tests/typecheck/should_fail/T15629.hs b/testsuite/tests/typecheck/should_fail/T15629.hs index 6d1d0b8897..9d45e038ea 100644 --- a/testsuite/tests/typecheck/should_fail/T15629.hs +++ b/testsuite/tests/typecheck/should_fail/T15629.hs @@ -1,6 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} module Bug (f) where diff --git a/testsuite/tests/typecheck/should_fail/T15629.stderr b/testsuite/tests/typecheck/should_fail/T15629.stderr index aabc868844..f8985982a4 100644 --- a/testsuite/tests/typecheck/should_fail/T15629.stderr +++ b/testsuite/tests/typecheck/should_fail/T15629.stderr @@ -1,5 +1,5 @@ -T15629.hs:26:31: error: +T15629.hs:27:31: error: • Couldn't match kind ‘z’ with ‘ab’ Expected kind ‘F x ab ~> F x ab’, but ‘Comp (F1Sym :: x ~> F x z) F2Sym’ has kind ‘TyFun @@ -7,10 +7,10 @@ T15629.hs:26:31: error: -> *’ ‘z’ is a rigid type variable bound by the type signature for ‘g’ - at T15629.hs:26:17 + at T15629.hs:27:17 ‘ab’ is a rigid type variable bound by the type signature for ‘g’ - at T15629.hs:26:19-20 + at T15629.hs:27:19-20 • In the first argument of ‘Proxy’, namely ‘((Comp (F1Sym :: x ~> F x z) F2Sym) :: F x ab ~> F x ab)’ In the type signature: diff --git a/testsuite/tests/typecheck/should_fail/T15962.hs b/testsuite/tests/typecheck/should_fail/T15962.hs index e42fcdea2c..936193367a 100644 --- a/testsuite/tests/typecheck/should_fail/T15962.hs +++ b/testsuite/tests/typecheck/should_fail/T15962.hs @@ -1,5 +1,6 @@ {-# LANGUAGE GADTs #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleContexts #-} diff --git a/testsuite/tests/typecheck/should_fail/T15962.stderr b/testsuite/tests/typecheck/should_fail/T15962.stderr index 49dbb8ce96..c69bdf6cfc 100644 --- a/testsuite/tests/typecheck/should_fail/T15962.stderr +++ b/testsuite/tests/typecheck/should_fail/T15962.stderr @@ -1,18 +1,18 @@ -T15962.hs:27:11: error: +T15962.hs:28:11: error: • Found hole: _ :: Big ks -> Big (Eval (Map Dual ks)) Where: ‘ks’ is a rigid type variable bound by the type signature for: dualBig :: forall (ks :: [OpKind]). Big ks -> Big (Eval (Map Dual ks)) - at T15962.hs:26:1-45 + at T15962.hs:27:1-45 • In an equation for ‘dualBig’: dualBig = _ • Relevant bindings include dualBig :: Big ks -> Big (Eval (Map Dual ks)) - (bound at T15962.hs:27:1) + (bound at T15962.hs:28:1) Valid hole fits include dualBig :: Big ks -> Big (Eval (Map Dual ks)) - (bound at T15962.hs:27:1) + (bound at T15962.hs:28:1) -T15962.hs:33:12: error: +T15962.hs:34:12: error: Variable not in scope: iDontExist :: Big ('Conjunction : ks) diff --git a/testsuite/tests/typecheck/should_fail/T16627.hs b/testsuite/tests/typecheck/should_fail/T16627.hs index 0aec91a0fe..b6cf83fd20 100644 --- a/testsuite/tests/typecheck/should_fail/T16627.hs +++ b/testsuite/tests/typecheck/should_fail/T16627.hs @@ -1,4 +1,4 @@ -{-# language TypeInType, ScopedTypeVariables #-} +{-# language DataKinds, PolyKinds, ScopedTypeVariables #-} module Silly where import Type.Reflection (Typeable, typeRep, TypeRep) import Type.Reflection.Unsafe (mkTrApp) diff --git a/testsuite/tests/typecheck/should_run/UnliftedNewtypesCoerceRun.hs b/testsuite/tests/typecheck/should_run/UnliftedNewtypesCoerceRun.hs index 53905a302a..779e297438 100644 --- a/testsuite/tests/typecheck/should_run/UnliftedNewtypesCoerceRun.hs +++ b/testsuite/tests/typecheck/should_run/UnliftedNewtypesCoerceRun.hs @@ -6,7 +6,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE UnboxedSums #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} import GHC.Int (Int(I#)) diff --git a/testsuite/tests/typecheck/should_run/UnliftedNewtypesIdentityRun.hs b/testsuite/tests/typecheck/should_run/UnliftedNewtypesIdentityRun.hs index f81367268b..8d3fdadc80 100644 --- a/testsuite/tests/typecheck/should_run/UnliftedNewtypesIdentityRun.hs +++ b/testsuite/tests/typecheck/should_run/UnliftedNewtypesIdentityRun.hs @@ -6,7 +6,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE UnboxedSums #-} -{-# LANGUAGE TypeInType #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} import GHC.Int (Int(I#)) |