diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2022-06-02 12:40:41 +0200 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2022-06-15 17:29:06 +0100 |
commit | 209021ca699245c7cf3219e422b42164d55adb81 (patch) | |
tree | 7d07e9c19952509656e8db6b65e08761ada8a926 /compiler/Unique.h | |
parent | cbed7afa71fe73196b6ea333ca57895adc055e4b (diff) | |
download | haskell-209021ca699245c7cf3219e422b42164d55adb81.tar.gz |
Fix a CSE shadowing bug.
We used to process the rhs of non-recursive bindings and their body
using the same env. If we had something like
let x = ... x ...
this caused trouble because the two xs refer to different binders
but we would substitute both for a new binder x2 causing out of scope
errors.
We now simply use two different envs for the rhs and body in cse_bind.
It's all explained in the Note [Separate envs for let rhs and body]
Fixes #21685
(cherry picked from commit 56ebf9a5bfc8791c1fa609b960f3c161882540e3)
Diffstat (limited to 'compiler/Unique.h')
0 files changed, 0 insertions, 0 deletions