[GHC] #16221: Core Lint error with a data type
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.7 (Type checker) | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Compile-time Unknown/Multiple | crash or panic Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- The following data declaration fails `-dcore-lint` {{{ #!haskell {-# LANGUAGE PolyKinds, ExplicitForAll, ExistentialQuantification #-} module T16221 where data T0 a = forall k (b :: k). MkT0 (T0 b) !Int }}} The test case was extracted from T14066a, the bang is to force the data type to have a wrapper. This has been present at least since GHC 8.0. {{{ <no location info>: warning: In the type ‘T0 a_a1wY’ Kind application error in type ‘T0 a_a1wY’ Function kind = forall k. k -> * Arg kinds = [(k_X1x2, *), (a_a1wY, k_a1wZ)] Fun: k_X1x2 (a_a1wY, k_a1wZ) <no location info>: warning: In the expression: MkT0 @ k_X1x2 @ a_a1wY @ k_X1x2 @ b_a1x0 dt_a1xC dt_X1xK Kinds don't match in type application: Type variable: a_X1xw :: k_X1x2 Arg type: a_a1wY :: k_a1wZ Linted Arg kind: k_a1wZ <no location info>: warning: In the type ‘T0 a_a1wY’ Kind application error in type ‘T0 a_a1wY’ Function kind = forall k. k -> * Arg kinds = [(k_X1x2, *), (a_a1wY, k_a1wZ)] Fun: k_X1x2 (a_a1wY, k_a1wZ) <no location info>: warning: In the expression: MkT0 @ k_X1x2 @ a_a1wY @ k_X1x2 @ b_a1x0 dt_a1xC dt_X1xK Kinds don't match in type application: Type variable: a_X1xw :: k_X1x2 Arg type: a_a1wY :: k_a1wZ Linted Arg kind: k_a1wZ }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by aspiwack): * cc: aspiwack (added) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * cc: RyanGlScott (added) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Turns out that #16342 is closely related -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #16342 | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/444 -------------------------------------+------------------------------------- Changes (by RyanGlScott): * differential: => https://gitlab.haskell.org/ghc/ghc/merge_requests/444 * related: => #16342 Comment: This was allegedly fixed in [https://gitlab.haskell.org/ghc/ghc/commit/80dfcee61e3bfb67f131cd674f96467e16... 80dfcee6], although a test case has yet to materialize. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #16342 | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/444 -------------------------------------+------------------------------------- Comment (by Marge Bot <ben+marge-bot@…>): In [changeset:"80dfcee61e3bfb67f131cd674f96467e16c0f9d8/ghc" 80dfcee6/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="80dfcee61e3bfb67f131cd674f96467e16c0f9d8" Be more careful when naming TyCon binders This patch fixes two rather gnarly test cases: * Trac #16342 (mutual recursion) See Note [Tricky scoping in generaliseTcTyCon] * Trac #16221 (shadowing) See Note [Unification variables need fresh Names] The main changes are: * Substantial reworking of TcTyClsDecls.generaliseTcTyCon This is the big change, and involves the rather tricky function TcHsSyn.zonkRecTyVarBndrs. See Note [Inferring kinds for type declarations] and Note [Tricky scoping in generaliseTcTyCon] for the details. * bindExplicitTKBndrs_Tv and bindImplicitTKBndrs_Tv both now allocate /freshly-named/ unification variables. Indeed, more generally, unification variables are always fresh; see Note [Unification variables need fresh Names] in TcMType * Clarify the role of tcTyConScopedTyVars. See Note [Scoped tyvars in a TcTyCon] in TyCon As usual, this dragged in some more refactoring: * Renamed TcMType.zonkTyCoVarBndr to zonkAndSkolemise * I renamed checkValidTelescope to checkTyConTelescope; it's only used on TyCons, and indeed takes a TyCon as argument. * I folded the slightly-mysterious reportFloatingKvs into checkTyConTelescope. (Previously all its calls immediately followed a call to checkTyConTelescope.) It makes much more sense there. * I inlined some called-once functions to simplify checkValidTyFamEqn. It's less spaghetti-like now. * This patch also fixes Trac #16251. I'm not quite sure why #16251 went wrong in the first place, nor how this patch fixes it, but hey, it's good, and life is short. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: patch Priority: normal | Milestone: 8.10.1 Component: Compiler (Type | Version: 8.7 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #16342 | Differential Rev(s): | https://gitlab.haskell.org/ghc/ghc/merge_requests/444, Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/499 -------------------------------------+------------------------------------- Changes (by RyanGlScott): * status: new => patch * differential: https://gitlab.haskell.org/ghc/ghc/merge_requests/444 => https://gitlab.haskell.org/ghc/ghc/merge_requests/444, https://gitlab.haskell.org/ghc/ghc/merge_requests/499 * milestone: => 8.10.1 Comment: https://gitlab.haskell.org/ghc/ghc/merge_requests/499 adds a regression test. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.10.1 Component: Compiler (Type | Version: 8.7 checker) | Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Compile-time | Test Case: crash or panic | polykinds/T16221,T16221a Blocked By: | Blocking: Related Tickets: #16342 | Differential Rev(s): | https://gitlab.haskell.org/ghc/ghc/merge_requests/444, Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/499 -------------------------------------+------------------------------------- Changes (by simonpj): * status: patch => closed * testcase: => polykinds/T16221,T16221a * resolution: => fixed Comment: Test landed as {{{ commit 07f378cee37338c5f2655b3a7e46dfef3f1c5cc1 Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Wed Mar 6 09:54:06 2019 +0000 Add tests for Trac #16221 and #16342 testsuite/tests/polykinds/T16221.hs | 13 +++++++++++++ testsuite/tests/polykinds/T16221a.hs | 7 +++++++ testsuite/tests/polykinds/T16221a.stderr | 6 ++++++ testsuite/tests/polykinds/T16342.hs | 13 +++++++++++++ testsuite/tests/polykinds/all.T | 3 +++ 5 files changed, 42 insertions(+) }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16221: Core Lint error with a data type -------------------------------------+------------------------------------- Reporter: monoidal | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: 8.10.1 Component: Compiler (Type | Version: 8.7 checker) | Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: Compile-time | Test Case: crash or panic | polykinds/T16221,T16221a Blocked By: | Blocking: Related Tickets: #16342 | Differential Rev(s): | https://gitlab.haskell.org/ghc/ghc/merge_requests/444, Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/499 -------------------------------------+------------------------------------- Comment (by Marge Bot <ben+marge-bot@…>): In [changeset:"07f378cee37338c5f2655b3a7e46dfef3f1c5cc1/ghc" 07f378ce/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="07f378cee37338c5f2655b3a7e46dfef3f1c5cc1" Add tests for Trac #16221 and #16342 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16221#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC