| 103 | | |
| 104 | | == *OLD* Regression tests of type family patches == |
| 105 | | |
| 106 | | '''[This is outdated pre-merge info just kept around for a while.]''' |
| 107 | | |
| 108 | | Current `validate` result: |
| 109 | | {{{ |
| 110 | | Unexpected passes: |
| 111 | | Class1(normal) |
| 112 | | GADT2(normal) |
| 113 | | |
| 114 | | Unexpected failures: |
| 115 | | Refl2(normal) |
| 116 | | Simple5a(normal) |
| 117 | | rw(normal) |
| 118 | | tcfail065(normal) |
| 119 | | tcfail068(normal) |
| 120 | | tcfail071(normal) |
| 121 | | tcfail076(normal) |
| 122 | | tcfail102(normal) |
| 123 | | tcfail103(normal) |
| 124 | | tcfail153(normal) |
| 125 | | tcfail179(normal) |
| 126 | | }}} |
| 127 | | |
| 128 | | * Class1: VALID. (Only marked to fail in head to keep validate happy.) |
| 129 | | * GADT2: VALID. (Only marked to fail in head to keep validate happy.) |
| 130 | | * Relf2: VALID. Type family BUG. |
| 131 | | * Simple5a: VALID. Error message changed. |
| 132 | | * ~~break001~~: INVALID. GHC panic instead of printing error message about ambiguous variable. |
| 133 | | * ~~break006~~: INVALID. Seems to be the same problem as break001. |
| 134 | | * ~~print019~~: INVALID. Seems to be the same problem as break001. |
| 135 | | * rw: VALID. Changed error message. Reports one error less. Other one is pruned, but still raised if the first one is removed. |
| 136 | | * ~~tc210~~: INVALID (matching `forall a.a -> Int` against `Int -> Int fails). |
| 137 | | * ~~tc211~~: INVALID (tests impredicative types). |
| 138 | | * ~~tcfail046~~: VALID. Changed error message, BUT the new error message has one more type synonym unfolding, which should be avoided. |
| 139 | | * tcfail065: VALID. Cosmetic difference, as tidy names are assigned in different order. |
| 140 | | * tcfail068: VALID. Reports two errors less (probably due to different recovery points). Yes, I checked that its not that it admits incorrect programs, but just due to different order of checking/pruning of errors. |
| 141 | | * tcfail071: VALID. Now reports one instead of two errors as deferred unification is checked only after the contexts of mutually recursive groups have been unified. (The latter is what this test case is really about, and it still works fine for that.) |
| 142 | | * tcfail076: VALID. Same as tcfail065. |
| 143 | | * tcfail102: VALID. |
| 144 | | * tcfail103: VALID. Error message is actually better! |
| 145 | | * ~~tcfail128~~: VALID. Same as tcfail046. |
| 146 | | * ~~tcfail145~~: VALID. Error message got worse. |
| 147 | | * tcfail153: VALID. Error message is different, but equally correct and accurate. The type mismatch manifests itself at two different subexpressions. Due to a different traversal order, we now report the error at the other subexpression. |
| 148 | | * tcfail179: VALID. If anything, the error message improved. |
| 149 | | * while: VALID. Works if definition of `succeed` gets a type signature `Monad m => a -> m a`. The error seems to be due to the new GADT rules about annotations, but the error message is a bit strange; ie, need to be improved. |
| 150 | | |
| 151 | | Regression tests that are not part of the fast run: |
| 152 | | * cholewo-eval: core-lint breakage |