diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2021-10-14 18:57:54 +0200 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2021-10-14 23:12:54 +0200 |
commit | 88961c37e35a4d38b4d2a8d854c69bbf428978b4 (patch) | |
tree | 71a028c792a1dde3994917ef4d10074aac84ed72 /compiler/Language | |
parent | e46edfcf47d674731935b2ea1443cc7927e071fb (diff) | |
download | haskell-wip/joachim/undefined-callstack.tar.gz |
undefined: Neater CallStack in error messagewip/joachim/undefined-callstack
Users of `undefined` don’t want to see
```
files.hs: Prelude.undefined:
CallStack (from HasCallStack):
error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err
undefined, called at file.hs:151:19 in main:Main
```
but want to see
```
files.hs: Prelude.undefined:
CallStack (from HasCallStack):
undefined, called at file.hs:151:19 in main:Main
```
so let’s make that so.
The function for that is `withFrozenCallStack`, but that is not usable
here (module dependencies, and also not representation-polymorphic). And
even if it were, it could confuse GHC’s strictness analyzer, leading to
big regressions in some perf tests (T10421 in particular).
So after shuffling modules and definitions around, I eventually noticed
that the easiest way is to just not call `error` here.
Fixes #19886
Diffstat (limited to 'compiler/Language')
0 files changed, 0 insertions, 0 deletions