-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 9 pull requests #73643
Rollup of 9 pull requests #73643
Commits on Jun 18, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1d08b1b - Browse repository at this point
Copy the full SHA 1d08b1bView commit details
Commits on Jun 19, 2020
-
Remove the const_raw_ptr_comparison feature gate.
We can never supply a meaningful implementation of this. Instead, the follow up commits will create two intrinsics that approximate comparisons: * `ptr_maybe_eq` * `ptr_maybe_ne` The fact that `ptr_maybe_eq(a, b)` is not necessarily the same value as `!ptr_maybe_ne(a, b)` is a symptom of this entire problem.
Configuration menu - View commit details
-
Copy full SHA for 9245ba8 - Browse repository at this point
Copy the full SHA 9245ba8View commit details -
Configuration menu - View commit details
-
Copy full SHA for e09b620 - Browse repository at this point
Copy the full SHA e09b620View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84f1d73 - Browse repository at this point
Copy the full SHA 84f1d73View commit details -
Configuration menu - View commit details
-
Copy full SHA for e75fbae - Browse repository at this point
Copy the full SHA e75fbaeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 562f496 - Browse repository at this point
Copy the full SHA 562f496View commit details
Commits on Jun 20, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 0624a5a - Browse repository at this point
Copy the full SHA 0624a5aView commit details -
Refer just to the issue in the raw ptr cmp diagnostic instead of expl…
…aining everything in the diagnostic
Configuration menu - View commit details
-
Copy full SHA for 9e88b48 - Browse repository at this point
Copy the full SHA 9e88b48View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53686b9 - Browse repository at this point
Copy the full SHA 53686b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98e97a4 - Browse repository at this point
Copy the full SHA 98e97a4View commit details -
Christian Poveda committed
Jun 20, 2020 Configuration menu - View commit details
-
Copy full SHA for 9355168 - Browse repository at this point
Copy the full SHA 9355168View commit details
Commits on Jun 21, 2020
-
Clarify --extern documentation.
Fixes rust-lang#64731, rust-lang#73531. See also rust-lang#64402#issuecomment-530852886
Configuration menu - View commit details
-
Copy full SHA for a63eb3c - Browse repository at this point
Copy the full SHA a63eb3cView commit details -
This commit fixes typos in the doc comments of 'librustc_mir/monomorphize/collector.rs'
Configuration menu - View commit details
-
Copy full SHA for 6374054 - Browse repository at this point
Copy the full SHA 6374054View commit details -
Configuration menu - View commit details
-
Copy full SHA for e465b22 - Browse repository at this point
Copy the full SHA e465b22View commit details -
Update src/librustc_mir/monomorphize/collector.rs
typo fix Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 893077c - Browse repository at this point
Copy the full SHA 893077cView commit details
Commits on Jun 22, 2020
-
bootstrap: no
config.toml
exists regressionThis commit fixes a regression introduced in rust-lang#73317 where an oversight meant that `config.toml` was assumed to exist. Signed-off-by: David Wood <david@davidtw.co>
Configuration menu - View commit details
-
Copy full SHA for b60ec47 - Browse repository at this point
Copy the full SHA b60ec47View commit details -
modify leak-check to track only outgoing edges from placeholders
Also, update the affected tests. This seems strictly better but it is actually more permissive than I initially intended. In particular it accepts this ``` forall<'a, 'b> { exists<'intersection> { 'a: 'intersection, 'b: 'intersection, } } ``` and I'm not sure I want to accept that. It implies that we have a `'empty` in the new universe intoduced by the `forall`.
Configuration menu - View commit details
-
Copy full SHA for bcc0a9c - Browse repository at this point
Copy the full SHA bcc0a9cView commit details -
Revert "modify leak-check to track only outgoing edges from placehold…
…ers" This reverts commit 2e01db4b396a1e161f7a73933fff34bc9421dba0.
Configuration menu - View commit details
-
Copy full SHA for 4199b3a - Browse repository at this point
Copy the full SHA 4199b3aView commit details -
rewrite leak check to be based on universes
In the new leak check, instead of getting a list of placeholders to track, we look for any placeholder that is part of a universe which was created during the snapshot. We are looking for the following error patterns: * P1: P2, where P1 != P2 * P1: R, where R is in some universe that cannot name P1 This new leak check is more precise than before, in that it accepts this patterns: * R: P1, even if R cannot name P1, because R = 'static is a valid sol'n * R: P1, R: P2, as above Note that this leak check, when running during subtyping, is less efficient than before in some sense because it is going to check and re-check all the universes created since the snapshot. We're going to move when the leak check runs to try and correct that.
Configuration menu - View commit details
-
Copy full SHA for f2cf994 - Browse repository at this point
Copy the full SHA f2cf994View commit details -
move leak-check to during coherence, candidate eval
In particular, it no longer occurs during the subtyping check. This is important for enabling lazy normalization, because the subtyping check will be producing sub-obligations that could affect its results. Consider an example like for<'a> fn(<&'a as Mirror>::Item) = fn(&'b u8) where `<T as Mirror>::Item = T` for all `T`. We will wish to produce a new subobligation like <'!1 as Mirror>::Item = &'b u8 This will, after being solved, ultimately yield a constraint that `'!1 = 'b` which will fail. But with the leak-check being performed on subtyping, there is no opportunity to normalize `<'!1 as Mirror>::Item` (unless we invoke that normalization directly from within subtyping, and I would prefer that subtyping and unification are distinct operations rather than part of the trait solving stack). The reason to keep the leak check during coherence and trait evaluation is partly for backwards compatibility. The coherence change permits impls for `fn(T)` and `fn(&T)` to co-exist, and the trait evaluation change means that we can distinguish those two cases without ambiguity errors. It also avoids recreating rust-lang#57639, where we were incorrectly choosing a where clause that would have failed the leak check over the impl which succeeds. The other reason to keep the leak check in those places is that I think it is actually close to the model we want. To the point, I think the trait solver ought to have the job of "breaking down" higher-ranked region obligation like ``!1: '2` into into region obligations that operate on things in the root universe, at which point they should be handed off to polonius. The leak check isn't *really* doing that -- these obligations are still handed to the region solver to process -- but if/when we do adopt that model, the decision to pass/fail would be happening in roughly this part of the code. This change had somewhat more side-effects than I anticipated. It seems like there are cases where the leak-check was not being enforced during method proving and trait selection. I haven't quite tracked this down but I think it ought to be documented, so that we know what precisely we are committing to. One surprising test was `issue-30786.rs`. The behavior there seems a bit "fishy" to me, but the problem is not related to the leak check change as far as I can tell, but more to do with the closure signature inference code and perhaps the associated type projection, which together seem to be conspiring to produce an unexpected signature. Nonetheless, it is an example of where changing the leak-check can have some unexpected consequences: we're now failing to resolve a method earlier than we were, which suggests we might change some method resolutions that would have been ambiguous to be successful. TODO: * figure out remainig test failures * add new coherence tests for the patterns we ARE disallowing
Configuration menu - View commit details
-
Copy full SHA for 5a7a850 - Browse repository at this point
Copy the full SHA 5a7a850View commit details -
upcasting traits requires only that things become more general
Revert the code that states that upcasting traits requires full equality and change to require that the source type is a subtype of the target type, as one would expect. As the comment states, this was an old bug that we didn't want to fix yet as it interacted poorly with the old leak-check. This fixes the old-lub-glb-object test, which was previously reporting too many errors (i.e., in the previous commit).
Configuration menu - View commit details
-
Copy full SHA for 1e00e1b - Browse repository at this point
Copy the full SHA 1e00e1bView commit details -
remove snapshot calls from "match" operations during select
Motivation: - we want to use leak-check sparingly, first off - these calls were essentially the same as doing the check during subtyping
Configuration menu - View commit details
-
Copy full SHA for 70cf33f - Browse repository at this point
Copy the full SHA 70cf33fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6873a76 - Browse repository at this point
Copy the full SHA 6873a76View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a68d56 - Browse repository at this point
Copy the full SHA 3a68d56View commit details -
Configuration menu - View commit details
-
Copy full SHA for be0d10f - Browse repository at this point
Copy the full SHA be0d10fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 93e2982 - Browse repository at this point
Copy the full SHA 93e2982View commit details -
Configuration menu - View commit details
-
Copy full SHA for c88a76e - Browse repository at this point
Copy the full SHA c88a76eView commit details -
fix subtle bug in NLL type checker
The bug was revealed by the behavior of the old-lub-glb-hr-noteq1.rs test. The old-lub-glb-hr-noteq2 test shows the current 'order dependent' behavior of coercions around higher-ranked functions, at least when running with `-Zborrowck=mir`. Also, run compare-mode=nll.
Configuration menu - View commit details
-
Copy full SHA for 6929013 - Browse repository at this point
Copy the full SHA 6929013View commit details -
Configuration menu - View commit details
-
Copy full SHA for d57689f - Browse repository at this point
Copy the full SHA d57689fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3eb8eb9 - Browse repository at this point
Copy the full SHA 3eb8eb9View commit details
Commits on Jun 23, 2020
-
Rollup merge of rust-lang#72271 - rakshith-ravi:master, r=varkor
Improve compiler error message for wrong generic parameter order - Added optional "help" parameter that shows a help message on the compiler error if required. - Added a simple ordered parameter as a sample help. @varkor will make more changes as required. Let me know if I'm heading in the right direction. Fixes rust-lang#68437 r? @varkor
Configuration menu - View commit details
-
Copy full SHA for 59e87c0 - Browse repository at this point
Copy the full SHA 59e87c0View commit details -
Rollup merge of rust-lang#72493 - nikomatsakis:move-leak-check, r=mat…
…thewjasper move leak-check to during coherence, candidate eval Implementation of MCP rust-lang/compiler-team#295. I'd like to do a crater run on this. Note to @rust-lang/lang: This PR is a breaking change (bugfix). It causes tests like the following to go from a future-compatibility warning rust-lang#56105 to a hard error: ```rust trait Trait {} impl Trait for for<'a, 'b> fn(&'a u32, &'b u32) {} impl Trait for for<'c> fn(&'c u32, &'c u32) {} // now rejected, used to warn ``` I am not aware of any instances of this code in the wild, but that is why we are doing a crater run. The reason for this change is that those two types are, in fact, the same type, and hence the two impls are overlapping. There will still be impls that trigger rust-lang#56105 after this lands, however -- I hope that we will eventually just accept those impls without warning, for the most part. One example of such an impl is this pattern, which is used by wasm-bindgen and other crates as well: ```rust trait Trait {} impl<T> Trait for fn(&T) { } impl<T> Trait for fn(T) { } // still accepted, but warns ```
Configuration menu - View commit details
-
Copy full SHA for 903823c - Browse repository at this point
Copy the full SHA 903823cView commit details -
Rollup merge of rust-lang#73398 - oli-obk:const_raw_ptr_cmp, r=varkor…
…,RalfJung,nagisa A way forward for pointer equality in const eval r? @varkor on the first commit and @RalfJung on the second commit cc rust-lang#53020
Configuration menu - View commit details
-
Copy full SHA for ae38698 - Browse repository at this point
Copy the full SHA ae38698View commit details -
Rollup merge of rust-lang#73472 - GuillaumeGomez:cleanup-e0689, r=Dyl…
…an-DPC Clean up E0689 explanation r? @Dylan-DPC
Configuration menu - View commit details
-
Copy full SHA for 98aa34c - Browse repository at this point
Copy the full SHA 98aa34cView commit details -
Rollup merge of rust-lang#73496 - estebank:opaque-missing-lts-in-fn-3…
…, r=nikomatsakis Account for multiple impl/dyn Trait in return type when suggesting `'_` Make `impl` and `dyn` Trait lifetime suggestions a bit more resilient. Follow up to rust-lang#72804. r? @nikomatsakis
Configuration menu - View commit details
-
Copy full SHA for cd18ac1 - Browse repository at this point
Copy the full SHA cd18ac1View commit details -
Rollup merge of rust-lang#73515 - christianpoveda:livedrop-diagnostic…
…s, r=oli-obk Add second message for LiveDrop errors This is an attempt to fix rust-lang#72907 by adding a second message to the `LiveDrop` diagnostics. Changing from this ``` error[E0493]: destructors cannot be evaluated at compile-time --> src/lib.rs:7:9 | 7 | let mut always_returned = None; | ^^^^^^^^^^^^^^^^^^^ constants cannot evaluate destructors error: aborting due to previous error ``` to this ``` error[E0493]: destructors cannot be evaluated at compile-time --> foo.rs:6:9 | 6 | let mut always_returned = None; | ^^^^^^^^^^^^^^^^^^^ constants cannot evaluate destructors ... 10 | always_returned = never_returned; | --------------- value is dropped here error: aborting due to previous error ``` r? @RalfJung @ecstatic-morse
Configuration menu - View commit details
-
Copy full SHA for 0f9a6ed - Browse repository at this point
Copy the full SHA 0f9a6edView commit details -
Rollup merge of rust-lang#73567 - adetaylor:extern-doc-fix, r=dtolnay
Clarify --extern documentation. Fixes rust-lang#64731, rust-lang#73531. See also rust-lang#64402 (comment)
Configuration menu - View commit details
-
Copy full SHA for 0560151 - Browse repository at this point
Copy the full SHA 0560151View commit details -
Rollup merge of rust-lang#73572 - JOE1994:patch-4, r=jonas-schievink
Fix typos in doc comments Hello 🦀 , This commit fixes typos in the doc comments of 'librustc_mir/monomorphize/collector.rs' Thank you for reviewing this PR 👍
Configuration menu - View commit details
-
Copy full SHA for 84bd1e7 - Browse repository at this point
Copy the full SHA 84bd1e7View commit details -
Rollup merge of rust-lang#73590 - davidtwco:bootstrap-fix-config-env-…
…var, r=Mark-Simulacrum bootstrap: no `config.toml` exists regression Fixes rust-lang#73574. This PR fixes a regression introduced in rust-lang#73317 where an oversight meant that `config.toml` was assumed to exist.
Configuration menu - View commit details
-
Copy full SHA for 44900f8 - Browse repository at this point
Copy the full SHA 44900f8View commit details