[GHC] #11882: Use coercionKind instread of zonkTcType in TcFlatten.flatten_tyvar

GHC ghc-devs at haskell.org
Fri Apr 15 15:13:25 UTC 2016


#11882: Use coercionKind instread of zonkTcType in TcFlatten.flatten_tyvar
-------------------------------------+-------------------------------------
           Reporter:  simonpj        |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  7.10.3
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 In `TcFlatten.flatten_tyvar3` we had
 {{{
        ; orig_kind <- liftTcS $ zonkTcType kind
              -- NB: orig_kind is *not* the kind returned from flatten
              -- This zonk is necessary because we might later see the tv's
 kind
              -- in canEqTyVarTyVar (where we use getCastedTyVar_maybe).
              -- If you remove it, then e.g. dependent/should_fail/T11407
 panics
              -- See also Note [Flattening]
 }}}
 But in fact the kind of the coercion returned earlier gives the same
 information, and turns out to be a little faster.

 Plus, I hate calling `zonkTcType` in the constraint solver; it doesn't
 "fit" there.

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


More information about the ghc-tickets mailing list