Fix a QuickLook bug
This MR fixes the bug exposed by #24676. The problem was that quickLookArg was trying to avoid calling tcInstFun unnecessarily; but it was in fact necessary. But that in turn forced me into a significant refactoring, putting more fields into EValArgQL. Highlights: see Note [Quick Look overview] in GHC.Tc.Gen.App * Instantiation variables are now distinguishable from ordinary unification variables, by level number = QLInstVar. This is treated like "level infinity". See Note [The QLInstVar TcLevel] in GHC.Tc.Utils.TcType. * In `tcApp`, we don't track the instantiation variables in a set Delta any more; instead, we just tell them apart by their level number. * EValArgQL now much more clearly captures the "half-done" state of typechecking an argument, ready for later resumption. See Note [Quick Look at value arguments] in GHC.Tc.Gen.App * Elminated a bogus (never used) fast-path in GHC.Tc.Utils.Instantiate.instCallConstraints See Note [Possible fast path for equality constraints] Many other small refactorings.
Showing
- compiler/GHC/Core.hs 1 addition, 1 deletioncompiler/GHC/Core.hs
- compiler/GHC/Core/DataCon.hs 2 additions, 2 deletionscompiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/Lint.hs 1 addition, 1 deletioncompiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Rules.hs 1 addition, 1 deletioncompiler/GHC/Core/Rules.hs
- compiler/GHC/Core/TyCo/FVs.hs 20 additions, 4 deletionscompiler/GHC/Core/TyCo/FVs.hs
- compiler/GHC/Driver/Config/Core/Lint.hs 1 addition, 1 deletioncompiler/GHC/Driver/Config/Core/Lint.hs
- compiler/GHC/Tc/Gen/App.hs 974 additions, 567 deletionscompiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Expr.hs 4 additions, 1 deletioncompiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Head.hs 110 additions, 430 deletionscompiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/Match.hs 6 additions, 4 deletionscompiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Pat.hs 1 addition, 1 deletioncompiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Solver/InertSet.hs 3 additions, 3 deletionscompiler/GHC/Tc/Solver/InertSet.hs
- compiler/GHC/Tc/Solver/Monad.hs 6 additions, 7 deletionscompiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Types/Constraint.hs 1 addition, 1 deletioncompiler/GHC/Tc/Types/Constraint.hs
- compiler/GHC/Tc/Utils/Concrete.hs 228 additions, 1 deletioncompiler/GHC/Tc/Utils/Concrete.hs
- compiler/GHC/Tc/Utils/Instantiate.hs 37 additions, 22 deletionscompiler/GHC/Tc/Utils/Instantiate.hs
- compiler/GHC/Tc/Utils/TcMType.hs 4 additions, 4 deletionscompiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Utils/TcType.hs 75 additions, 20 deletionscompiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/Unify.hs 189 additions, 67 deletionscompiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Tc/Zonk/Monad.hs 4 additions, 1 deletioncompiler/GHC/Tc/Zonk/Monad.hs
Loading
Please register or sign in to comment