Every implication should bump the TcLevel exactly once
Simon recently added an assertion that every implication bumps the TcLevel exactly once. However, this turns out not to be true, and thus caused quite a few failures in a DEBUG
compiler. I commented the check out, but we really should investigate and fix any deviations from this plan.
Here is the suspect code in TcSimplify:
-- Though sensible, this check causes lots of testsuite failures. It is
-- remaining commented out for now.
{-
check_tc_level = do { cur_lvl <- TcS.getTcLevel
; MASSERT2( tclvl == pushTcLevel cur_lvl
, text "Cur lvl =" <+> ppr cur_lvl $$
text "Imp lvl =" <+> ppr tclvl ) }
-}
The goal is to uncomment this region without introducing failures.
Trac metadata
Trac field | Value |
---|---|
Version | 8.5 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |