Skip to content

Initialise TcM plugins in initTc

sheaf requested to merge sheaf/ghc:T26395 into master

Ticket: #26395 (closed).

This MR ensures that we run typechecker plugins and defaulting plugins whenever we call initTc.

In particular, this ensures that the pattern-match checker, which calls initTcDsForSolver which calls initTc, runs with typechecker plugins enabled. This matters for situations like:

  merge :: Vec n a -> Vec n a -> Vec (2 * n) a
  merge Nil Nil = Nil
  merge (a <: as) (b <: bs) = a :< (b <: merge as bs)

in which we need the typechecker plugin to run in order to tell us that the Givens would be inconsistent in the additional equation

  merge (_ <: _) Nil

and thus that the equation is not needed.

Edited by sheaf

Merge request reports

Loading