summaryrefslogtreecommitdiff
path: root/compiler/GHC/Platform/Reg.hs
diff options
context:
space:
mode:
authorRichard Eisenberg <rae@richarde.dev>2021-04-12 14:46:30 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-06-05 10:29:22 -0400
commit8c90e6c758769b068aea2891b26cc17577b6d36a (patch)
tree8915b06885c8938662f8b64f50d3dac37e174519 /compiler/GHC/Platform/Reg.hs
parent9a28680d2e23e7b25dd7254a439aea31dfae32d5 (diff)
downloadhaskell-8c90e6c758769b068aea2891b26cc17577b6d36a.tar.gz
Fix #19682 by breaking cycles in Deriveds
This commit expands the old Note [Type variable cycles in Givens] to apply as well to Deriveds. See the Note for details and examples. This fixes a regression introduced by my earlier commit that killed off the flattener in favor of the rewriter. A few other things happened along the way: * unifyTest was renamed to touchabilityTest, because that's what it does. * isInsolubleOccursCheck was folded into checkTypeEq, which does much of the same work. To get this to work out, though, we need to keep more careful track of what errors we spot in checkTypeEq, and so CheckTyEqResult has become rather more glorious. * A redundant Note or two was eliminated. * Kill off occCheckForErrors; due to Note [Rewriting synonyms], the extra occCheckExpand here is always redundant. * Store blocked equalities separately from other inerts; less stuff to look through when kicking out. Close #19682. test case: typecheck/should_compile/T19682{,b}
Diffstat (limited to 'compiler/GHC/Platform/Reg.hs')
0 files changed, 0 insertions, 0 deletions