Add conditional CallStack constraints to common partial utility functions
There are a variety of common utility functions used throughout GHC which are partial (e.g. many of the helpers in Type
, for instance, kindPrimRep
). It would be great if [ImplicitCallStacks] would identify their callers. However, we likely don't want to pay the cost of passing around CallStacks
during normal compilation so I propose we make them conditional on DEBUG
. That is, define
#if DEBUG
type DebugCallStack = CallStack
#else
type DebugCallStack = (() :: Constraint)
#endif
Now we can sprinkle DebugCallStack
constraints about GHC and get the best of both worlds!
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |