-
Simon Peyton Jones authored
The problem with #5327 was like this: let x = I# 0 `cast` co1 in ...(case x `cast` co2 of I# y -> blah)... The two casts cancelled out, but exprIsConApp_maybe couldn't see that. This patch makes it simpler, faster, and more effective. (Incidentally, usually 'x' would be inlined, in #5327 it wasn't because of an INLINEABLE pragma and the lone-variable thing. Instead of fiddling with alrady-delicate code, I just made exprIsConApp_maybe better.)
29edeadb