There are still a few test issues that could use some attention.
Redundant error messages
These tests (arguably) exhibit redundant error messages,
[x] T6018ghcirnfail
[x] tcfail058
[x] tcfail078
[x] tcfail063
[x] tcfail113
[x] tcfail161
[x] tcfail212
[x] T7609 RAE: Regrettably, this reports X a a where it should report aXa. But that requires a major, major overhaul to fix, I think. I don't spot anything redundant.
Missing Expected/Actual clauses
[x] ghci047 RAE: Ditto Defer02.
[x] Defer02 RAE: When you look at the code, this makes sense, and I think is an improvement over HEAD. There is a function with a Int ~ Bool constraint. Expected/actual here is bogus.
[x] T7453 RAE: The expected/actual is reported a bit further down. My branch finds this type error in a different spot than HEAD, but one isn't more right than the other. The expected/actual stuff is still reported; it just looks different.
[x] FrozenErrorTests RAE: Like Defer02. I think this is an improvement.
Other
[x] drvfail009: This error message used to be more descriptive
[x] T10267: Missing location information from TH splice
[ ] T8583: Redundant reflective type equalities in context (e.g. Elem t ~ Elem t) RAE: This test does not exist. But note that HEAD also reports reflexive equalities when it has them.
[x] T7778: Num Int => Num clearly nonsense, but I don't see the connection to impredicative polymorphism (although this may be more a reflection of my lacking type theory knowledge)
[x] T9196: Error message used to be more descriptive (mention expected/actual kind of constraint)
[x] T4007: Very suspicious: fold/build rule fires once instead of twice
RAE: There is a story here, but it's a bit boring. But this is OK. In HEAD, you'll see that the rule fires only once also.
[x] T7328: Missing location context "In the class declaration for Foo" RAE: This is a consequence of the design that errors are reported with 3 enclosing contexts, My error gives some more specific contexts, and so loses the outermost. I'm accepting the change.
There are still a few test issues that could use some attention.
Redundant error messages
These tests (arguably) exhibit redundant error messages,
X a a
where it should reporta
Xa
. But that requires a major, major overhaul to fix, I think. I don't spot anything redundant.Missing Expected/Actual clauses
Int ~ Bool
constraint. Expected/actual here is bogus.Other
GHC.Base.id :: forall . a_0 -> a_0
Elem t ~ Elem t
) RAE: This test does not exist. But note that HEAD also reports reflexive equalities when it has them.Num Int => Num
clearly nonsense, but I don't see the connection to impredicative polymorphism (although this may be more a reflection of my lacking type theory knowledge)fold/build
rule fires once instead of twice RAE: There is a story here, but it's a bit boring. But this is OK. In HEAD, you'll see that the rule fires only once also.Foo
" RAE: This is a consequence of the design that errors are reported with 3 enclosing contexts, My error gives some more specific contexts, and so loses the outermost. I'm accepting the change.Compiler crashes