Turn infinite loop into a panic
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 22 Aug 2018 08:51:26 +0000 (09:51 +0100)
committerBen Gamari <ben@smart-cactus.org>
Thu, 23 Aug 2018 20:19:37 +0000 (16:19 -0400)
commitd3ce8842226877d753f55f2ab5fdf2b815d7300f
tree3893182dc040364a2f934c50cb54f7631897e560
parent7c819cbed9677e840d8233aed1f88f27579545b4
Turn infinite loop into a panic

In these two functions
  * TcIface.toIfaceAppTyArgsX
  * Type.piResultTys
we take a type application (f t1 .. tn) and try to find
its kind. It turned out that, if (f t1 .. tn) was ill-kinded
the function would go into an infinite loop.

That's not good: it caused the loop in Trac #15473.

This patch doesn't fix the bug in #15473, but it does turn the
loop into a decent panic, which is a step forward.

(cherry picked from commit db6f1d9cfc74690798645a7cc5b25040c36bb35d)
compiler/iface/ToIface.hs
compiler/types/Type.hs