1. 27 Jul, 2017 7 commits
    • Richard Eisenberg's avatar
      Remove old coercion pretty-printer · 79cfb199
      Richard Eisenberg authored
      Now, all coercions are printed from IfaceType, just like types.
      
      This also changes the rendering of TransCo to use ; instead of
      a prefix operator.
      79cfb199
    • Richard Eisenberg's avatar
      Preserve CoVar uniques during pretty printing · bb2a446a
      Richard Eisenberg authored
      Previously, we did this for Types, but not for Coercions.
      bb2a446a
    • Richard Eisenberg's avatar
      Don't tidy vars when dumping a type · ef39af72
      Richard Eisenberg authored
      This makes variables print more consistenty in, say,
      -ddump-tc-trace.
      ef39af72
    • Richard Eisenberg's avatar
      Test #11672 in typecheck/should_fail/T11672. · 9a549756
      Richard Eisenberg authored
      I believe this was fixed with the fix for #11198.
      9a549756
    • Richard Eisenberg's avatar
      Fix #11400, #11560 by documenting an infelicity. · c9667d32
      Richard Eisenberg authored
      Really, the fix for both of these is #11307.
      c9667d32
    • Richard Eisenberg's avatar
      Improve error messages around kind mismatches. · 8e15e3d3
      Richard Eisenberg authored
      Previously, when canonicalizing (or unifying, in uType) a
      heterogeneous equality, we emitted a kind equality and used the
      resulting coercion to cast one side of the heterogeneous equality.
      
      While sound, this led to terrible error messages. (See the bugs
      listed below.) The problem is that using the coercion built from
      the emitted kind equality is a bit like a wanted rewriting a wanted.
      The solution is to keep heterogeneous equalities as irreducible.
      
      See Note [Equalities with incompatible kinds] in TcCanonical.
      
      This commit also removes a highly suspicious switch to FM_SubstOnly
      when flattening in the kinds of a type variable. I have no idea
      why this was there, other than as a holdover from pre-TypeInType.
      I've not left a Note because there is simply no reason I can conceive
      of that the FM_SubstOnly should be there.
      
      One challenge with this patch is that the emitted derived equalities
      might get emitted several times: when a heterogeneous equality is
      in an implication and then gets floated out from the implication,
      the Derived is present both in and out of the implication. This
      causes a duplicate error message. (Test case:
      typecheck/should_fail/T7368) Solution: track the provenance of
      Derived constraints and refuse to float out a constraint that has
      an insoluble Derived.
      
      Lastly, this labels one test (dependent/should_fail/RAE_T32a)
      as expect_broken, because the problem is really #12919. The
      different handling of constraints in this patch exposes the error.
      
      This fixes bugs #11198, #12373, #13530, and #13610.
      
      test cases:
      typecheck/should_fail/{T8262,T8603,tcail122,T12373,T13530,T13610}
      8e15e3d3
    • Gabor Greif's avatar
      Remove unneeded import · 4a264157
      Gabor Greif authored
      4a264157
  2. 26 Jul, 2017 7 commits
  3. 25 Jul, 2017 7 commits
  4. 24 Jul, 2017 10 commits
  5. 23 Jul, 2017 9 commits