[GHC] #15290: QuantifiedConstraints: panic "addTcEvBind NoEvBindsVar"

GHC ghc-devs at haskell.org
Tue Jun 26 11:12:57 UTC 2018


#15290: QuantifiedConstraints: panic "addTcEvBind NoEvBindsVar"
-------------------------------------+-------------------------------------
        Reporter:  goldfire          |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  8.4.3
      Resolution:                    |             Keywords:
                                     |  QuantifiedConstraints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:  quantified-
                                     |  constraints/T15290, T15290a
      Blocked By:                    |             Blocking:  9123
 Related Tickets:                    |  Differential Rev(s):  Phab:D4895
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 OK, this commit fixes the problem reported in comment:22, and adds the
 code there as a regression test.

 This is the ''third'' separate bug exposed by the original bug report.
 Wow.
 {{{
 commit 261dd83cacec71edd551e9c581d05285c9ea3226
 Author: Simon Peyton Jones <simonpj at microsoft.com>
 Date:   Mon Jun 25 17:42:57 2018 +0100

     Fix TcLevel manipulation in TcDerivInfer.simplifyDeriv

     The level numbers we were getting simply didn't obey the
     invariant (ImplicInv) in TcType
        Note [TcLevel and untouchable type variables]

     That leads to chaos. Easy to fix.  I improved the documentation.

     I also added an assertion in TcSimplify that checks that
     level numbers go up by 1 as we dive inside implications, so
     that we catch the problem at source rather than than through
     its obscure consequences.

     That in turn showed up that TcRules was also generating
     constraints that didn't obey (ImplicInv), so I fixed that too.
     I have no idea what consequences were lurking behing that
     bug, but anyway now it's fixed.  Hooray.
 }}}
 Are we done now?   (Once Ryan has committed the stuff in comment:31.)

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


More information about the ghc-tickets mailing list