Fix the treatment of lexically scoped kind variables (Trac #8856)
The issue here is described in Note [Binding scoped type variables] in TcPat. When implementing this fix I was able to make things quite a bit simpler: * The type variables in a type signature now never unify with each other, and so can be straightfoward skolems. * We only need the SigTv stuff for signatures in patterns, and for kind variables. (cherry picked from commit cf1a0f97)
Showing
- compiler/typecheck/FamInst.lhs 1 addition, 1 deletioncompiler/typecheck/FamInst.lhs
- compiler/typecheck/TcBinds.lhs 11 additions, 38 deletionscompiler/typecheck/TcBinds.lhs
- compiler/typecheck/TcExpr.lhs 6 additions, 3 deletionscompiler/typecheck/TcExpr.lhs
- compiler/typecheck/TcMType.lhs 17 additions, 34 deletionscompiler/typecheck/TcMType.lhs
- compiler/typecheck/TcPat.lhs 48 additions, 12 deletionscompiler/typecheck/TcPat.lhs
- compiler/typecheck/TcPatSyn.lhs 1 addition, 1 deletioncompiler/typecheck/TcPatSyn.lhs
- compiler/typecheck/TcType.lhs 13 additions, 23 deletionscompiler/typecheck/TcType.lhs
- compiler/vectorise/Vectorise/Generic/PData.hs 1 addition, 1 deletioncompiler/vectorise/Vectorise/Generic/PData.hs
- testsuite/tests/typecheck/should_compile/MutRec.hs 11 additions, 0 deletionstestsuite/tests/typecheck/should_compile/MutRec.hs
- testsuite/tests/typecheck/should_compile/all.T 1 addition, 0 deletionstestsuite/tests/typecheck/should_compile/all.T
Loading
Please register or sign in to comment