[GHC] #14568: Uncurried Parameter to n-ary Function in Type Signature Causes Crash
GHC
ghc-devs at haskell.org
Fri Dec 8 23:17:56 UTC 2017
#14568: Uncurried Parameter to n-ary Function in Type Signature Causes Crash
-------------------------------------+-------------------------------------
Reporter: nixy | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
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:
-------------------------------------+-------------------------------------
If you uncomment the arrow, everything's fine; GHC crashes as-is.
{{{#!hs
f :: (a -> b) {- -> -} a -> c
f = undefined
}}}
Apparently GHC incorrectly parses any n-ary function parameter followed by
another uncurried parameter in type signatures.
System Info:
GHC v8.2.1
GCC v5.4.0
Linux Mint (Linux 4.8.0-53-generic #56~16.04.1-Ubuntu SMP x86_64)
ghc -v -dcore-lint:
{{{
Glasgow Haskell Compiler, Version 8.2.1, stage 2 booted by GHC version
8.0.2
Using binary package database:
/usr/local/haskell/ghc-8.2.1-x86_64/lib/ghc-8.2.1/package.conf.d/package.cache
Using binary package database:
/home/nic/.ghc/x86_64-linux-8.2.1/package.conf.d/package.cache
package flags []
loading package database
/usr/local/haskell/ghc-8.2.1-x86_64/lib/ghc-8.2.1/package.conf.d
loading package database /home/nic/.ghc/x86_64-linux-8.2.1/package.conf.d
wired-in package ghc-prim mapped to ghc-prim-0.5.1.0
wired-in package integer-gmp mapped to integer-gmp-1.0.1.0
wired-in package base mapped to base-4.10.0.0
wired-in package rts mapped to rts
wired-in package template-haskell mapped to template-haskell-2.12.0.0
wired-in package ghc mapped to ghc-8.2.1
wired-in package dph-seq not found.
wired-in package dph-par not found.
package flags []
loading package database
/usr/local/haskell/ghc-8.2.1-x86_64/lib/ghc-8.2.1/package.conf.d
loading package database /home/nic/.ghc/x86_64-linux-8.2.1/package.conf.d
wired-in package ghc-prim mapped to ghc-prim-0.5.1.0
wired-in package integer-gmp mapped to integer-gmp-1.0.1.0
wired-in package base mapped to base-4.10.0.0
wired-in package rts mapped to rts-1.0
wired-in package template-haskell mapped to template-haskell-2.12.0.0
wired-in package ghc mapped to ghc-8.2.1
wired-in package dph-seq not found.
wired-in package dph-par not found.
*** Chasing dependencies:
Chasing modules from: *bug.hs
!!! Chasing dependencies: finished in 1.14 milliseconds, allocated 0.207
megabytes
Stable obj: []
Stable BCO: []
Ready for upsweep
[NONREC
ModSummary {
ms_hs_date = 2017-12-08 23:11:58.321654412 UTC
ms_mod = Main,
ms_textual_imps = [(Nothing, Prelude)]
ms_srcimps = []
}]
*** Deleting temp files:
Deleting:
compile: input file bug.hs
*** Checking old interface for Main (use -ddump-hi-diffs for more
details):
[1 of 1] Compiling Main ( bug.hs, bug.o )
*** Parser [Main]:
!!! Parser [Main]: finished in 0.13 milliseconds, allocated 0.090
megabytes
*** Renamer/typechecker [Main]:
*** Deleting temp files:
Deleting:
*** Deleting temp dirs:
Deleting:
ghc: panic! (the 'impossible' happened)
(GHC version 8.2.1 for x86_64-unknown-linux):
repSplitAppTys
a_anL[sk:1]
b_anM[sk:1]
[]
Call stack:
CallStack (from HasCallStack):
prettyCurrentCallStack, called at
compiler/utils/Outputable.hs:1133:58 in ghc:Outputable
callStackDoc, called at compiler/utils/Outputable.hs:1137:37 in
ghc:Outputable
pprPanic, called at compiler/types/Type.hs:808:9 in ghc:Type
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14568>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list