Numerous small changes to the constraint solver
The main thing is that we now keep unsolved Derived constraints in the wc_flats of a WantedConstraints, rather than discarding them each time. This actually fixes a poential (admittedly obscure) bug, when we currently discard a superclass constraint, and may never re-generate it, and may thereby miss a functional dependency. Instead, reportErrors filters out Derived constraints that we don't want to report. The other changes are all small refactorings following our walk-through. MERGED from commit 9c0a6bbb on HEAD
Showing
- compiler/typecheck/TcErrors.lhs 52 additions, 1 deletioncompiler/typecheck/TcErrors.lhs
- compiler/typecheck/TcHsSyn.lhs 18 additions, 32 deletionscompiler/typecheck/TcHsSyn.lhs
- compiler/typecheck/TcInteract.lhs 68 additions, 124 deletionscompiler/typecheck/TcInteract.lhs
- compiler/typecheck/TcRnTypes.lhs 21 additions, 21 deletionscompiler/typecheck/TcRnTypes.lhs
- compiler/typecheck/TcSMonad.lhs 64 additions, 73 deletionscompiler/typecheck/TcSMonad.lhs
- compiler/typecheck/TcSimplify.lhs 5 additions, 81 deletionscompiler/typecheck/TcSimplify.lhs
Loading
Please register or sign in to comment