Add a safeguard to Core Lint
authorKrzysztof Gogolewski <krzysztof.gogolewski@tweag.io>
Tue, 9 Apr 2019 13:09:29 +0000 (15:09 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sun, 14 Apr 2019 12:49:23 +0000 (08:49 -0400)
commite7cad16c19fb226353d3fb6e92914ed953d32857
treed92844fc8e68c082489d42aba5ff2e1b096f4ccf
parentd2271fe4e841cc157385bfc9ee498a0bf805f250
Add a safeguard to Core Lint

Lint returns a pair (Maybe a, WarnsAndErrs). The Maybe monad
allows to handle an unrecoverable failure.
In case of such a failure, the error should be added to the second
component of the pair. If this is not done, Lint will silently
accept bad programs. This situation actually happened during
development of linear types. This adds a safeguard.
compiler/coreSyn/CoreLint.hs