ba7b32f3
by Apoorv Ingle at 2025-11-27T12:31:07-06:00
- `getDeepSubsumptionFlag_DataConHead` performs a non-trivial traversal if the expression passed to it is complex.
This traversal is necessary if the head of the function is an `XExpr` and `splitHsApps` does not look through them
- The deepsubsumption flag is stored in EVAlArgQL to reduce the need to call `getDeepSubsumptionFlag_DataConHead`
- refactor building CtOrigin before instantiations as a function. It does state lookup only if needed.
- In tcDoStmts, we lose the location of the first statement. It is needed for getting the pattern match check right
Further, do not call addErrCtxt on it, the tcMonoLExpr will do it for us.
- during QL arg's function head instantiation use more a more accurate location for arg when the application chain is null