Opened 11 months ago

Closed 8 months ago

Last modified 8 months ago

#15797 closed bug (fixed)

GHC panic using visible kind application

Reported by: Iceland_jack Owned by:
Priority: normal Milestone: 8.8.1
Component: Compiler Version: 8.6.1
Keywords: TypeApplications Cc: mnguyen
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case: typecheck/should_fail/T15797
Blocked By: Blocking:
Related Tickets: Differential Rev(s): Phab:D5229
Wiki Page:

Description

{-# Language    RankNTypes          #-}
{-# Language    TypeFamilies        #-}
{-# Language    ScopedTypeVariables #-}
{-# Language    TypeApplications    #-}
{-# Language    DataKinds           #-}
{-# Language    PolyKinds           #-}
{-# Language    TypeOperators       #-}
{-# Language    GADTs               #-}

{-# Options_GHC -dcore-lint #-}

import Data.Kind

class Ríki (obj :: Type) where
  type Obj :: obj -> Constraint
  type Obj =  @obj

class        (a :: k)
instance  @k (a :: k)

data
  EQ :: forall ob. ob -> ob -> Type where
  EQ :: EQ a a

instance
  Ríki (EQ @ob)
$ ghci -dcore-lint 568_bug.hs
GHCi, version 8.7.20181017: http://www.haskell.org/ghc/  :? for help
[1 of 1] Compiling Main             ( 568_bug.hs, interpreted )
WARNING: file compiler/types/TyCoRep.hs, line 2567
  in_scope InScope {ob_a1zs co_a1zt}
  tenv []
  cenv [a1zt :-> co_a1zt]
  tys [Bæ]
  cos []
  needInScope [a1zn :-> co_a1zn, a1zs :-> ob_a1zs]
ghc-stage2: panic! (the 'impossible' happened)
  (GHC version 8.7.20181017 for x86_64-unknown-linux):
        Core Lint error
  <no location info>: warning:
      In the type ‘Bæ’
      Unfilled coercion hole: {co_a1zn}
  <no location info>: warning:
      In the type ‘Bæ’
      co_a1zn :: (ob_a1zs -> ob_a1zs -> *) ~# *
      [LclId[CoVarId]] is out of scope
  Call stack:
      CallStack (from HasCallStack):
        callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable
        pprPanic, called at compiler/typecheck/FamInst.hs:171:31 in ghc:FamInst

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

>

Change History (4)

comment:1 Changed 11 months ago by goldfire

This is fixed by adding a checkNoErrs to the reportAllUnsolved line in failIfEmitsConstraints. I have a patch being validated now.

Regardless, please add a test case when committing the patch for #12045.

comment:2 Changed 11 months ago by Richard Eisenberg <rae@…>

In 74ed9c1c/ghc:

Actually fail in failIfEmitsConstraints

The function TcHsType.failIfEmitsConstraints says that it fails.
It even does so in its name. But it didn't! It *reported* constraints
but didn't fail. Now it does.

This is important in tcHsClsInstType; see the comments therein.

This was discovered while looking at #15797, but that ticket
requires visible kind application to exhibit the bug; the test
case will come with the patch for #12045.

comment:3 Changed 8 months ago by RyanGlScott

Differential Rev(s): Phab:D5229
Milestone: 8.8.1
Resolution: fixed
Status: newclosed
Test Case: typecheck/should_fail/T15797

This was fixed in 17bd163566153babbf51adaff8397f948ae363ca:

Author: mynguyen <mnguyen1@brynmawr.edu>
Date:   Tue Dec 18 11:52:26 2018 -0500

    Visible kind application
    
    Summary:
    This patch implements visible kind application (GHC Proposal 15/#12045), as well as #15360 and #15362.
    It also refactors unnamed wildcard handling, and requires that type equations in type families in Template Haskell be
    written with full type on lhs. PartialTypeSignatures are on and warnings are off automatically with visible kind
    application, just like in term-level.
    
    There are a few remaining issues with this patch, as documented in
    ticket #16082.
    
    Includes a submodule update for Haddock.
    
    Test Plan: Tests T12045a/b/c/TH1/TH2, T15362, T15592a
    
    Reviewers: simonpj, goldfire, bgamari, alanz, RyanGlScott, Iceland_jack
    
    Subscribers: ningning, Iceland_jack, RyanGlScott, int-index, rwbarton, mpickering, carter
    
    GHC Trac Issues: `#12045`, `#15362`, `#15592`, `#15788`, `#15793`, `#15795`, `#15797`, `#15799`, `#15801`, `#15807`, `#15816`
    
    Differential Revision: https://phabricator.haskell.org/D5229

comment:4 Changed 8 months ago by Richard Eisenberg <rae@…>

In 17bd1635/ghc:

Visible kind application

Summary:
This patch implements visible kind application (GHC Proposal 15/#12045), as well as #15360 and #15362.
It also refactors unnamed wildcard handling, and requires that type equations in type families in Template Haskell be
written with full type on lhs. PartialTypeSignatures are on and warnings are off automatically with visible kind
application, just like in term-level.

There are a few remaining issues with this patch, as documented in
ticket #16082.

Includes a submodule update for Haddock.

Test Plan: Tests T12045a/b/c/TH1/TH2, T15362, T15592a

Reviewers: simonpj, goldfire, bgamari, alanz, RyanGlScott, Iceland_jack

Subscribers: ningning, Iceland_jack, RyanGlScott, int-index, rwbarton, mpickering, carter

GHC Trac Issues: `#12045`, `#15362`, `#15592`, `#15788`, `#15793`, `#15795`, `#15797`, `#15799`, `#15801`, `#15807`, `#15816`

Differential Revision: https://phabricator.haskell.org/D5229
Note: See TracTickets for help on using tickets.