diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2018-02-07 11:57:40 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2018-02-07 11:57:40 +0000 |
commit | 65069806ea3637882d584e785dcb9e650271e4b6 (patch) | |
tree | 0a6af3f754c2e7ce93fb87c4034b2469cb371a4d /rts/package.conf.in | |
parent | 41d29d5ad100d4c8bf4d2175c11cc710b23843da (diff) | |
download | haskell-65069806ea3637882d584e785dcb9e650271e4b6.tar.gz |
Fix solveOneFromTheOther for RecursiveSuperclasses
This patch fixes the redundant superclass expansion
in Trac #14774.
The main change is to fix TcInterac.solveOneFromTheOther, so
that it does not prefer a work-item with a binding if that binding
transitively depends on the inert item we are comparing it with.
Explained in Note [Replacement vs keeping] in TcInert, esp
item (c) of the "Constraints coming from the same level" part.
To make this work I refactored out a new function
TcEvidence.findNeededEvVars, which was previously buried
inside TcSimplify.neededEvVars.
I added quite a few more comments and signposts about superclass
expansion.
Diffstat (limited to 'rts/package.conf.in')
0 files changed, 0 insertions, 0 deletions