Remove redundant kind check
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 24 Nov 2016 13:57:04 +0000 (13:57 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 25 Nov 2016 11:18:55 +0000 (11:18 +0000)
The invariants for CTyEqCan mean that this check isn't needed.
Turn it into an ASSERT.

compiler/typecheck/TcFlatten.hs

index 3adbee1..4fc8414 100644 (file)
@@ -1457,8 +1457,9 @@ unflatten tv_eqs funeqs
                         -- NB: unlike unflattenFmv, filling a fmv here /does/
                         --     bump the unification count; it is "improvement"
                         -- Note [Unflattening can force the solver to iterate]
-      , tyVarKind tv `eqType` typeKind rhs
-      = do { is_filled <- isFilledMetaTyVar tv
+      = ASSERT2( tyVarKind tv `eqType` typeKind rhs, ppr ct )
+           -- CTyEqCan invariant should ensure this is true
+        do { is_filled <- isFilledMetaTyVar tv
            ; elim <- case is_filled of
                False -> do { traceTcS "unflatten_eq 2" (ppr ct)
                            ; tryFill      ev eq_rel       tv rhs }