summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2022-11-02 18:06:35 +0000
committerSimon Peyton Jones <simon.peytonjones@gmail.com>2022-11-25 22:31:27 +0000
commitd10dc6bdade0fdae879e5869038ce8378c2ce84f (patch)
treee386af2c82a9e64b7c72275c2b7e9af36bea7f11 /m4
parent13d627bbd0bc3dd30d672de341aa7f471be0aa2c (diff)
downloadhaskell-d10dc6bdade0fdae879e5869038ce8378c2ce84f.tar.gz
Fix decomposition of TyConAppswip/T22331
Ticket #22331 showed that we were being too eager to decompose a Wanted TyConApp, leading to incompleteness in the solver. To understand all this I ended up doing a substantial rewrite of the old Note [Decomposing equalities], now reborn as Note [Decomposing TyConApp equalities]. Plus rewrites of other related Notes. The actual fix is very minor and actually simplifies the code: in `can_decompose` in `GHC.Tc.Solver.Canonical.canTyConApp`, we now call `noMatchableIrreds`. A closely related refactor: we stop trying to use the same "no matchable givens" function here as in `matchClassInst`. Instead split into two much simpler functions.
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions