Suspicious behavior in break018
In !2608 (closed) we increased the unfolding-use threshold a bit to account for another change in our inlining behavior (see #15304 (closed)). However, doing so appears to reveal a bug in the GHCi debugger's type reconstruction logic. This manifests as break018
failing with
--- "/builds/ghc/ghc/tmp/ghctest-89bmrucp/test spaces/testsuite/tests/ghci.debugger/scripts/break018.run/break018.stdout.normalised" 2020-03-17 06:13:45.708613951 +0000
+++ "/builds/ghc/ghc/tmp/ghctest-89bmrucp/test spaces/testsuite/tests/ghci.debugger/scripts/break018.run/break018.run.stdout.normalised" 2020-03-17 06:13:45.712613941 +0000
@@ -8,7 +8,7 @@
l :: N Char = _
x :: Char = 'h'
Stopped in Main.newNode, mdo.hs:(8,17)-(9,42)
-_result :: IO (N Char) = _
-b :: N Char = _
-c :: Char = 'h'
-f :: N Char = _
+_result :: IO (N Integer) = _
+b :: N Integer = _
+c :: Integer = 104
+f :: N Integer = _
This is very odd since the Core is largely unchanged; the only difference is that we decide to inline newNode
into ll
. However, AFAICT this can't possibly be the issue: ll
isn't even called in this test (it's only defined because mdo.hs
is also used by another test, dynbrk004
).