diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2019-06-05 08:55:17 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-06-19 22:15:39 -0400 |
commit | 48fb3482f8cbc8a4b37161021e846105f980eed4 (patch) | |
tree | 65f8bb13c4ed52a551ac851febd3eda6e34436de /compiler/codeGen | |
parent | 3c9b57b07fa1d4a5fa69fb77ee8e49f7a0b6ada9 (diff) | |
download | haskell-48fb3482f8cbc8a4b37161021e846105f980eed4.tar.gz |
Fix typechecking of partial type signatures
Partial type sigs had grown hair. tcHsParialSigType was
doing lots of unnecessary work, and tcInstSig was cloning it
unnecessarily -- and the result didn't even work: #16728.
This patch cleans it all up, described by TcHsType
Note [Checking parital type signatures]
I basically just deleted code... but very carefully!
Some refactoring along the way
* Distinguish more explicintly between "anonymous" wildcards "_"
and "named" wildcards "_a". I changed the names of a number
of functions to make this distinction much more apparent.
The patch also revealed that the code in `TcExpr`
that implements the special typing rule for `($)` was wrong.
It called `getRuntimeRep` in a situation where where was no
particular reason to suppose that the thing had kind `TYPE r`.
This caused a crash in typecheck/should_run/T10846.
The fix was easy, and actually simplifies the code in `TcExpr`
quite a bit. Hooray.
Diffstat (limited to 'compiler/codeGen')
0 files changed, 0 insertions, 0 deletions