1. 04 1月, 2019 9 次提交
    • G
      Update some new tests to changed error messages · 2888d563
      Georg Semmler 提交于
      2888d563
    • G
      Fix failing compile tests · 992712ef
      Georg Semmler 提交于
      992712ef
    • G
      Directly check if input_ty is a type parameter and therefore a · a31dd0a2
      Georg Semmler 提交于
      uncoverd type
      a31dd0a2
    • V
    • G
      Fix tidy · 1715be0e
      Georg Semmler 提交于
      1715be0e
    • G
      70645e79
    • G
      Add some tests · bcd7acfe
      Georg Semmler 提交于
      This copies and adjusts the existing coherence tests to ensure that
      they continue to work using the new implementation.
      bcd7acfe
    • G
      Implement the re-rebalance coherence rfc · 757d7ba9
      Georg Semmler 提交于
      757d7ba9
    • B
      Auto merge of #55517 - nikomatsakis:universes, r=scalexm · c0bbc392
      bors 提交于
      Universes
      
      This PR transitions the compiler to use **universes** instead of the **leak-check**. It is marked as [WIP] for a few reasons:
      
      - The diagnostics at present are terrible =)
      - This changes the behavior of coherence, regressing some things that used to compile
      
      The goals of this PR at present are:
      
      - To start getting some eyes on the code
      - To do a crater run
      - To see the full travis results (due to https://github.com/rust-lang/rust/issues/52452, I am not able to run the full test suite locally anymore at present)
      
      The first few commits in the PR are changing how `evaluate` treats regions. We now track whether region comparisons occurred, reverting the "staticized" query approach that @arielb1 put in. The problem with "staticized" queries is that it relied on the leak-check to get higher-ranked things correct, and we are removing the leak-check in this PR series, so that caused problems.
      
      You can see at the end a collection of test updates. Mostly we behave the same but with atrocious diagnostics, but there are a number of cases where we used to error and now no longer do, as well as single case where we used to **not** error but we now do (the coherence-subtyping change).
      
      (Note: it would be possible to do a version of leak-check that propagates universe information and recover the old behavior. I am reluctant to do so because I'd like to leave us room to get more precise -- e.g., I want to eventually handle things like `exists<'a> { for<'b> { if ('a: 'b) { 'a: 'b } } }` which presently the leak-check cannot cope with etc. Also because it seems more consistent to me: most folks I've talked to expect the new behavior and are surprised to learn that binding sites were so significant before when it comes to coherence. One question is, though, to what extent are people relying on this in the wild?)
      c0bbc392
  2. 03 1月, 2019 31 次提交