diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2022-11-02 18:06:35 +0000 |
---|---|---|
committer | Simon Peyton Jones <simon.peytonjones@gmail.com> | 2022-11-25 22:31:27 +0000 |
commit | d10dc6bdade0fdae879e5869038ce8378c2ce84f (patch) | |
tree | e386af2c82a9e64b7c72275c2b7e9af36bea7f11 /compiler/GHC/Runtime/Debugger.hs | |
parent | 13d627bbd0bc3dd30d672de341aa7f471be0aa2c (diff) | |
download | haskell-wip/T22331.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 'compiler/GHC/Runtime/Debugger.hs')
0 files changed, 0 insertions, 0 deletions