summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Solver/Interact.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Tc/Solver/Interact.hs')
-rw-r--r--compiler/GHC/Tc/Solver/Interact.hs13
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 }