diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2021-07-02 15:10:59 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-07-02 23:25:13 -0400 |
commit | 9b1d9cbfa7a1beecc4125e35562f542b30ee4f2e (patch) | |
tree | c1269b521d007a4d64e7c0f910bfea1324302343 /libraries/base | |
parent | 5e30451db2ef1720910abfe69870c3e8255a4b7d (diff) | |
download | haskell-9b1d9cbfa7a1beecc4125e35562f542b30ee4f2e.tar.gz |
Arity: Handle shadowing properly
In #20070, we noticed that `findRhsArity` copes badly with shadowing.
A simple function like `g_123 x_123 = x_123`, where the labmda binder shadows,
already regressed badly.
Indeed, the whole `arityType` function wasn't thinking about shadowing *at all*.
I rectified that and established the invariant that `ae_join` and `am_sigs`
should always be disjoint. That entails deleting bindings from `ae_join`
whenever we add something to `am_sigs` and vice versa, which would otherwise be
a bug in the making.
That *should* fix (but I don't want to close it) #20070.
Diffstat (limited to 'libraries/base')
0 files changed, 0 insertions, 0 deletions