summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Gen/Rule.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Tc/Gen/Rule.hs')
-rw-r--r--compiler/GHC/Tc/Gen/Rule.hs6
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/GHC/Tc/Gen/Rule.hs b/compiler/GHC/Tc/Gen/Rule.hs
index 20620d2c36..708218abe5 100644
--- a/compiler/GHC/Tc/Gen/Rule.hs
+++ b/compiler/GHC/Tc/Gen/Rule.hs
@@ -460,9 +460,9 @@ getRuleQuantCts wc
= float_wc emptyVarSet wc
where
float_wc :: TcTyCoVarSet -> WantedConstraints -> (Cts, WantedConstraints)
- float_wc skol_tvs (WC { wc_simple = simples, wc_impl = implics })
+ float_wc skol_tvs (WC { wc_simple = simples, wc_impl = implics, wc_holes = holes })
= ( simple_yes `andCts` implic_yes
- , WC { wc_simple = simple_no, wc_impl = implics_no })
+ , emptyWC { wc_simple = simple_no, wc_impl = implics_no, wc_holes = holes })
where
(simple_yes, simple_no) = partitionBag (rule_quant_ct skol_tvs) simples
(implic_yes, implics_no) = mapAccumBagL (float_implic skol_tvs)
@@ -480,8 +480,6 @@ getRuleQuantCts wc
| EqPred _ t1 t2 <- classifyPredType (ctPred ct)
, not (ok_eq t1 t2)
= False -- Note [RULE quantification over equalities]
- | isHoleCt ct
- = False -- Don't quantify over type holes, obviously
| otherwise
= tyCoVarsOfCt ct `disjointVarSet` skol_tvs