- 04 1月, 2019 6 次提交
-
-
由 varkor 提交于
Co-Authored-By: Nweiznich <Georg_semmler_05@web.de>
-
由 Georg Semmler 提交于
-
由 Georg Semmler 提交于
-
由 Georg Semmler 提交于
This copies and adjusts the existing coherence tests to ensure that they continue to work using the new implementation.
-
由 Georg Semmler 提交于
-
由 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?)
-
- 03 1月, 2019 34 次提交
-
-
由 bors 提交于
polonius tweaks - bump polonius to 0.6.0 - fix 2-phase-borrow activations r? @matthewjasper
-
由 bors 提交于
Wf-check the output type of a function in MIR-typeck Closes #57265 cc @scalexm
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
Still not great, but good enough to land this PR.
-
由 Niko Matsakis 提交于
In particular, when we want to indicate that there is a connection between the self type and the other types.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
In NLL, ReVid is all there is, but I might want to repurpose.
-
由 Niko Matsakis 提交于
they are subsumed by `hr-subtype/hr-subtype.rs` and other tests
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
Fixes #33684
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
This is the pattern we no longer accept.
-
由 Niko Matsakis 提交于
Amazingly, this scenario was not tested for trait matching.
-
由 Niko Matsakis 提交于
Remove the leak-check and its associated machinery. Replace with making the solver aware of universes.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
When we coerce `dyn Foo` to `dyn Bar`, that is OK as long as `Foo` is usable in all contexts where `Bar` is usable (hence using the source must be a subtype of the target). This is needed for the universe-based code to handle `old-lub-glb-object`; that test used to work sort of by accident before with the old code.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
Previously, evaluation ignored outlives relationships. Since we using evaluation to skip the "normal" trait selection (which enforces outlives relationships) this led to incorrect results in some cases.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
-