From 65c186f0fdde95fd7c63ab9bd9b33a0213dba7d1 Mon Sep 17 00:00:00 2001 From: Vladislav Zavialov Date: Mon, 16 Jul 2018 18:46:52 -0400 Subject: Do not imply NoStarIsType by TypeOperators/TypeInType Implementation of the "Embrace TypeInType" proposal was done according to the spec, which specified that TypeOperators must imply NoStarIsType. This implication was meant to prevent breakage and to be removed in 2 releases. However, compiling head.hackage has shown that this implication only magnified the breakage, so there is no reason to have it in the first place. To remain in compliance with the three-release policy, we add a workaround to define the (*) type operator even when -XStarIsType is on. Test Plan: ./validate Reviewers: bgamari, RyanGlScott, goldfire, phadej, hvr Reviewed By: bgamari, RyanGlScott Subscribers: harpocrates, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4865 --- .../partial-sigs/should_compile/T15039d.stderr | 33 +++++++++------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'testsuite/tests/partial-sigs/should_compile/T15039d.stderr') diff --git a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr index 6c6e1a0c24..7a0f4acf26 100644 --- a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr +++ b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr @@ -1,64 +1,59 @@ T15039d.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ - standing for ‘Dict ((a :: Type) ~ (b :: Type))’ + • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex1 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> () + ex1 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> () at T15039d.hs:18:1-45 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex1’: ex1 (Dict :: _) = () • Relevant bindings include - ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> () - (bound at T15039d.hs:19:1) + ex1 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039d.hs:19:1) T15039d.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ - standing for ‘Dict ((a :: Type) ~~ (b :: Type))’ + standing for ‘Dict ((a :: *) ~~ (b :: *))’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex2 :: forall a b. Dict ((a :: Type) ~~ (b :: Type)) -> () + ex2 :: forall a b. Dict ((a :: *) ~~ (b :: *)) -> () at T15039d.hs:21:1-46 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex2’: ex2 (Dict :: _) = () • Relevant bindings include - ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> () - (bound at T15039d.hs:22:1) + ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () (bound at T15039d.hs:22:1) T15039d.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)] • Found type wildcard ‘_’ - standing for ‘Dict ((a :: Type) ~~ (b :: k))’ + standing for ‘Dict ((a :: *) ~~ (b :: k))’ Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by the type signature for: - ex3 :: forall k a (b :: k). Dict ((a :: Type) ~~ (b :: k)) -> () + ex3 :: forall k a (b :: k). Dict ((a :: *) ~~ (b :: k)) -> () at T15039d.hs:24:1-43 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex3’: ex3 (Dict :: _) = () • Relevant bindings include - ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> () - (bound at T15039d.hs:25:1) + ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () (bound at T15039d.hs:25:1) T15039d.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ standing for ‘Dict (Coercible Type a b)’ + • Found type wildcard ‘_’ standing for ‘Dict (Coercible * a b)’ Where: ‘a’, ‘b’ are rigid type variables bound by the type signature for: - ex6 :: forall a b. Dict (Coercible Type a b) -> () + ex6 :: forall a b. Dict (Coercible * a b) -> () at T15039d.hs:32:1-53 • In a pattern type signature: _ In the pattern: Dict :: _ In an equation for ‘ex6’: ex6 (Dict :: _) = () • Relevant bindings include - ex6 :: Dict (Coercible Type a b) -> () (bound at T15039d.hs:33:1) + ex6 :: Dict (Coercible * a b) -> () (bound at T15039d.hs:33:1) T15039d.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)] - • Found type wildcard ‘_’ - standing for ‘(a :: Type) ~R# (b :: Type)’ + • Found type wildcard ‘_’ standing for ‘(a :: *) ~R# (b :: *)’ Where: ‘a’, ‘b’ are rigid type variables bound by the inferred type of - ex7 :: ((a :: Type) ~R# (b :: Type)) => Coercion Type a b + ex7 :: ((a :: *) ~R# (b :: *)) => Coercion * a b at T15039d.hs:36:1-14 • In the type signature: ex7 :: _ => Coercion (a :: Type) (b :: Type) -- cgit v1.2.1