diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2020-04-14 13:58:25 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-05-01 10:38:16 -0400 |
commit | fd7ea0fee92a60f9658254cc4fe3abdb4ff299b1 (patch) | |
tree | 5fceecf0ca4885f1dcfa64b437eb20851a975b77 /docs/users_guide/conf.py | |
parent | 8b51fcbd67ca17a6dcc2f9e5a29176f836bf11d2 (diff) | |
download | haskell-fd7ea0fee92a60f9658254cc4fe3abdb4ff299b1.tar.gz |
PmCheck: Pick up `EvVar`s bound in `HsWrapper`s for long-distance info
`HsWrapper`s introduce evidence bindings through `WpEvLam` which the
pattern-match coverage checker should be made aware of.
Failing to do so caused #18049, where the resulting impreciseness of
imcompleteness warnings seemingly contradicted with
`-Winaccessible-code`.
The solution is simple: Collect all the evidence binders of an
`HsWrapper` and add it to the ambient `Deltas` before desugaring
the wrapped expression.
But that means we pick up many more evidence bindings, even when they
wrap around code without a single pattern match to check! That regressed
`T3064` by over 300%, so now we are adding long-distance info lazily
through judicious use of `unsafeInterleaveIO`.
Fixes #18049.
Diffstat (limited to 'docs/users_guide/conf.py')
0 files changed, 0 insertions, 0 deletions