[GHC] #16188: GHC HEAD-only panic (buildKindCoercion)
GHC
ghc-devs at haskell.org
Wed Jan 16 02:10:25 UTC 2019
#16188: GHC HEAD-only panic (buildKindCoercion)
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: new
Priority: highest | Milestone: 8.8.1
Component: Compiler (Type | Version: 8.7
checker) |
Resolution: | Keywords: TypeInType
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 RyanGlScott):
Here's what you get when you compile the program with `-dcore-lint`:
{{{
$ ~/Software/ghc4/inplace/bin/ghc-stage2 Bug.hs -dcore-lint
[1 of 1] Compiling Bug ( Bug.hs, Bug.o )
*** Core Lint errors : in result of Desugar (before optimization) ***
<no location info>: warning:
[RHS of ds_d1ur :: (Sing Any, Sing (ReNotEmpty re2_a1hm))]
The type of this binder doesn't match the type of its RHS: ds_d1ur
Binder's type: (Sing Any, Sing (ReNotEmpty re2_a1hm))
Rhs type: (Sing (Apply ReNotEmptySym0 re1_a1hl),
Sing (ReNotEmpty re2_a1hm))
*** Offending Program ***
<elided>
blah :: forall t (re :: RegExp t). Sing re -> ()
[LclIdX]
blah
= \ (@ t_a1hg)
(@ (re_a1hh :: RegExp t_a1hg))
(ds_d1uq :: Sing re_a1hh) ->
let {
ds_d1vi :: R:SingRegExp t_a1hg re_a1hh
[LclId]
ds_d1vi
= ds_d1uq
`cast` (D:R:SingRegExp0[0] <t_a1hg>_N <re_a1hh>_N
:: Sing re_a1hh ~R# R:SingRegExp t_a1hg re_a1hh) } in
case ds_d1vi of wild_00
{ SApp @ re1_a1hl @ re2_a1hm co_a1hn sre1_aXI sre2_aXJ ->
let {
ds_d1ur :: (Sing Any, Sing (ReNotEmpty re2_a1hm))
[LclId]
ds_d1ur
= (sReNotEmpty @ t_a1hg @ re1_a1hl sre1_aXI,
(sReNotEmpty @ t_a1hg @ re2_a1hm sre2_aXJ)
`cast` (Sub (Sym (Sing
<Bool>_N
(Sym
(D:R:ApplyRegExpBoolReNotEmptySym0r[0]
<t_a1hg>_N <re2_a1hm>_N)))_N)
:: Sing (Apply ReNotEmptySym0 re2_a1hm)
~R# Sing (ReNotEmpty re2_a1hm))) } in
let {
fail_d1v2 :: Void# -> ()
[LclId]
fail_d1v2
= \ (ds_d1v3 [OS=OneShot] :: Void#) ->
patError @ 'LiftedRep @ () "Bug.hs:(47,5)-(48,26)|case"# }
in
case ds_d1ur of wild_00 { (ds_d1uY, ds_d1uZ) ->
let {
ds_d1v0 :: R:SingBool Any
[LclId]
ds_d1v0
= ds_d1uY
`cast` (D:R:SingBool0[0] <Any>_N
:: Sing Any ~R# R:SingBool Any) } in
case ds_d1v0 of wild_00 {
__DEFAULT -> fail_d1v2 void#;
STrue co_a1hA ->
let {
ds_d1v1 :: R:SingBool Any
[LclId]
ds_d1v1
= ds_d1uZ
`cast` (D:R:SingBool0[0] <Any>_N
:: Sing Any ~R# R:SingBool Any) } in
case ds_d1v1 of wild_00 {
__DEFAULT -> fail_d1v2 void#;
STrue co_a1hD -> ()
}
}
}
}
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16188#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list