diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2021-06-24 11:17:45 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2021-07-27 17:54:29 +0100 |
commit | ca6ebd6c6d83ad793dad8f12fecf7ede926aa397 (patch) | |
tree | 4a250e48d2a9bdb60434c386cf546fd3c97461fb /LICENSE | |
parent | e8003e6d0c51f32a41c12f4047405e2355447290 (diff) | |
download | haskell-wip/T20153.tar.gz |
Fix a subtle scoping error in simplLazyBindwip/T20153
In the call to prepareBinding (in simplLazyBind), I had failed to
extend the in-scope set with the binders from body_floats1. As as
result, when eta-expanding deep inside prepareBinding we made up
an eta-binder that shadowed a variable free in body1. Yikes.
It's hard to trigger this bug. It showed up when I was working
on !5658, and I started using the in-scope set for eta-expansion,
rather than taking free variables afresh. But even then it only
showed up when compiling a module in Haddock
utils/haddock/haddock-api/src/Haddock/Interface/Rename.hs
Sadly Haddock is compiled without Core Lint, so we ultimately got
a seg-fault. Lint nailed it fast once I realised that it was off.
There is some other tiny refactoring in this patch.
Diffstat (limited to 'LICENSE')
0 files changed, 0 insertions, 0 deletions