[GHC] #14552: GHC panic on pattern synonym

GHC ghc-devs at haskell.org
Mon Oct 29 03:17:59 UTC 2018


#14552: GHC panic on pattern synonym
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  (none)
            Type:  bug               |               Status:  closed
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.3
      Resolution:  fixed             |             Keywords:
                                     |  PatternSynonyms, TypeInType,
                                     |  ViewPatterns
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
                                     |  testsuite/tests/patsyn/should_fail/T14552
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Richard Eisenberg <rae@…>):

 In [changeset:"5e45ad10ffca1ad175b10f6ef3327e1ed8ba25f3/ghc"
 5e45ad10/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="5e45ad10ffca1ad175b10f6ef3327e1ed8ba25f3"
 Finish fix for #14880.

 The real change that fixes the ticket is described in
 Note [Naughty quantification candidates] in TcMType.

 Fixing this required reworking candidateQTyVarsOfType, the function
 that extracts free variables as candidates for quantification.
 One consequence is that we now must be more careful when quantifying:
 any skolems around must be quantified manually, and quantifyTyVars
 will now only quantify over metavariables. This makes good sense,
 as skolems are generally user-written and are listed in the AST.

 As a bonus, we now have more control over the ordering of such
 skolems.

 Along the way, this commit fixes #15711 and refines the fix
 to #14552 (by accepted a program that was previously rejected,
 as we can now accept that program by zapping variables to Any).

 This commit also does a fair amount of rejiggering kind inference
 of datatypes. Notably, we now can skip the generalization step
 in kcTyClGroup for types with CUSKs, because we get the
 kind right the first time. This commit also thus fixes #15743 and
  #15592, which both concern datatype kind generalisation.
 (#15591 is also very relevant.) For this aspect of the commit, see
 Note [Required, Specified, and Inferred in types] in TcTyClsDecls.

 Test cases: dependent/should_fail/T14880{,-2},
             dependent/should_fail/T15743[cd]
             dependent/should_compile/T15743{,e}
             ghci/scripts/T15743b
             polykinds/T15592
             dependent/should_fail/T15591[bc]
             ghci/scripts/T15591
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14552#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list