diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-06-10 09:25:57 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-06-14 10:48:51 -0400 |
commit | 5279dda861f6a5cc804be88dc5f0ff2442660149 (patch) | |
tree | 1ef81e731c456a2d30ee36430077d96399ebc369 /mk | |
parent | effdd948056923f3bc03688c24d7e0339d6272f5 (diff) | |
download | haskell-5279dda861f6a5cc804be88dc5f0ff2442660149.tar.gz |
PrelRules: Don't break let/app invariant in shiftRule
Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.
Fixes #16742.
Diffstat (limited to 'mk')
0 files changed, 0 insertions, 0 deletions