diff options
Diffstat (limited to 'compiler/GHC/Tc/Solver/Interact.hs')
-rw-r--r-- | compiler/GHC/Tc/Solver/Interact.hs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/GHC/Tc/Solver/Interact.hs b/compiler/GHC/Tc/Solver/Interact.hs index b753a3c902..75a117798e 100644 --- a/compiler/GHC/Tc/Solver/Interact.hs +++ b/compiler/GHC/Tc/Solver/Interact.hs @@ -429,7 +429,9 @@ interactWithInertsStage wi CEqCan {} -> interactEq ics wi CIrredCan {} -> interactIrred ics wi CDictCan {} -> interactDict ics wi - CSpecialCan {} -> continueWith wi -- cannot have Special Givens, so nothing to interact with + CSpecialCan { cc_special_pred = spec } -> + case spec of + IsReflPrimPred {} -> continueWith wi -- cannot have IsRefl# Givens, so nothing to interact with _ -> pprPanic "interactWithInerts" (ppr wi) } -- CNonCanonical have been canonicalised @@ -1891,13 +1893,14 @@ topReactionsStage work_item CEqCan {} -> doTopReactEq work_item - CSpecialCan {} -> - -- No top-level interactions for special constraints. - continueWith work_item - CIrredCan {} -> doTopReactOther work_item + CSpecialCan { cc_special_pred = spec } -> + case spec of + IsReflPrimPred {} -> continueWith work_item + -- No top-level interactions for IsRefl# constraints. + -- Any other work item does not react with any top-level equations _ -> continueWith work_item } |