[GHC] #13819: TypeApplications-related GHC panic

GHC ghc-devs at haskell.org
Thu Jul 27 11:49:36 UTC 2017


#13819: TypeApplications-related GHC panic
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  goldfire
            Type:  bug               |               Status:  patch
        Priority:  high              |            Milestone:  8.4.1
       Component:  Compiler (Type    |              Version:  8.2.1-rc2
  checker)                           |             Keywords:
      Resolution:                    |  TypeApplications
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #13846, #13850    |  Differential Rev(s):  Phab:D3754
       Wiki Page:                    |
-------------------------------------+-------------------------------------

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

 In [changeset:"c2417b87ff59c92fbfa8eceeff2a0d6152b11a47/ghc" c2417b8/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="c2417b87ff59c92fbfa8eceeff2a0d6152b11a47"
 Fix #13819 by refactoring TypeEqOrigin.uo_thing

 The uo_thing field of TypeEqOrigin is used to track the
 "thing" (either term or type) that has the type (kind) stored
 in the TypeEqOrigin fields. Previously, this was sometimes a
 proper Core Type, which needed zonking and tidying. Now, it
 is only HsSyn: much simpler, and the error messages now use
 the user-written syntax.

 But this aspect of uo_thing didn't cause #13819; it was the
 sibling field uo_arity that did. uo_arity stored the number
 of arguments of uo_thing, useful when reporting something
 like "should have written 2 fewer arguments". We wouldn't want
 to say that if the thing didn't have two arguments. However,
 in practice, GHC was getting this wrong, and this message
 didn't seem all that helpful. Furthermore, the calculation
 of the number of arguments is what caused #13819 to fall over.
 This patch just removes uo_arity. In my opinion, the change
 to error messages is a nudge in the right direction.

 Test case: typecheck/should_fail/T13819
 }}}

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


More information about the ghc-tickets mailing list