-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 8 pull requests #98505
Rollup of 8 pull requests #98505
Conversation
Co-authored-by: Tomoaki Kawada <kawada@kmckk.co.jp>
When a binding is declared without a value, borrowck verifies that all codepaths have *one* assignment to them to initialize them fully. If there are any cases where a condition can be met that leaves the binding uninitialized or we attempt to initialize a field of an unitialized binding, we emit E0381. We now look at all the statements that initialize the binding, and use them to explore branching code paths that *don't* and point at them. If we find *no* potential places where an assignment to the binding might be missing, we display the spans of all the existing initializers to provide some context.
Of primary interest, this merges rust-lang/rls@ece09b8 into rust-lang/rust, which brings in the changes that fix RLS tests broken by rust-lang#97853. rust-lang#97853 already introduced that commit's changes (under 27f4044df03d15c7c38a483c3e4635cf4f51807d) but without putting those changes on rust-lang/rls as a branch, so we ended up with an orphan commit that caused trouble when updating submodules in rust-lang/rust. This commit, once merged into rust-lang/rust, should continue to let RLS tests to pass on rust-lang/rust's side and move us back into a healthy state where tip of the submodule points to a valid master commit in the rust-lang/rls repository.
std: use an event-flag-based thread parker on SOLID `Mutex` and `Condvar` are being replaced by more efficient implementations, which need thread parking themselves (see rust-lang#93740). Therefore, the generic `Parker` needs to be replaced on all platforms where the new lock implementation will be used, which, after rust-lang#96393, are SOLID, SGX and Hermit (more PRs coming soon). SOLID, conforming to the [μITRON specification](http://www.ertl.jp/ITRON/SPEC/FILE/mitron-400e.pdf), has event flags, which are a thread parking primitive very similar to `Parker`. However, they do not make any atomic ordering guarantees (even though those can probably be assumed) and necessitate a system call even when the thread token is already available. Hence, this `Parker`, like the Windows parker, uses an extra atomic state variable. I future-proofed the code by wrapping the event flag in a `WaitFlag` structure, as both SGX and Hermit can share the Parker implementation, they just have slightly different primitives (SGX uses signals and Hermit has a thread blocking API (which is unfortunately [broken](hermit-os/kernel#442), I think). ````@kawadakk```` I assume you are the target maintainer? Could you test this for me?
…ompiler-errors [rustc_parse] Forbid `let`s in certain places Currently only forbids in locals to resolve rust-lang#94927 (comment) but feel free to point any other places.
…notriddle Transform help popup into a pocket menu Just like we moved the settings menu into a "pocket menu", it's doing the same to the help popup. You can test it [here](https://rustdoc.crud.net/imperio/help-pocket-menu/doc/foo/index.html) and here is a screenshot: ![Screenshot from 2022-06-20 20-58-29](https://user-images.githubusercontent.com/3050060/174663718-538e9d11-3bf9-48b2-8909-f9bfe75af135.png) r? `````@jsha`````
On partial uninit error point at where we need init When a binding is declared without a value, borrowck verifies that all codepaths have *one* assignment to them to initialize them fully. If there are any cases where a condition can be met that leaves the binding uninitialized or we attempt to initialize a field of an uninitialized binding, we emit E0381. We now look at all the statements that initialize the binding, and use them to explore branching code paths that *don't* and point at them. If we find *no* potential places where an assignment to the binding might be missing, we display the spans of all the existing initializers to provide some context. Fix rust-lang#97956.
…ing, r=oli-obk Fix printing `impl trait` under binders Before, we would render `impl for<'a> Trait<'a>` like `impl Trait<for<'a> 'a>`, lol.
x.py: Support systems with only `python3` not `python` Fixes rust-lang#71818 without the pitfalls so far described in previous attempts.
…lbini Bump RLS to latest master on rust-lang/rls Of primary interest, this merges rust-lang/rls@ece09b8 into rust-lang/rust, which brings in the changes that fix RLS tests broken by rust-lang#97853. rust-lang#97853 already introduced that commit's changes (under rust-lang/rls@27f4044) but without putting those changes on rust-lang/rls as a branch, so we ended up with an orphan commit that caused trouble when updating submodules in rust-lang/rust. This commit, once merged into rust-lang/rust, should continue to let RLS tests to pass on rust-lang/rust's side and move us back into a healthy state where tip of the submodule points to a valid master commit in the rust-lang/rls repository. cc rust-lang#98451, but not marking as fixed as I believe we need to add verification to prevent future oversights.
…abort, r=Dylan-DPC Fix backtrace UI test when panic=abort is used The function `contains_verbose_expected` is only used when the panic strategy is not abort, so it caused a warning when it was abort, which made the UI test failed on stderr comparison.
@bors r+ rollup=never p=8 |
📌 Commit 2761d5f has been approved by |
⌛ Testing commit 2761d5f with merge 16b3e326cd0a82e34dcceecac65c9dec5d31a83c... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
@bors retry "the runner has received a shutdown signal" hopefully spurious? |
⌛ Testing commit 2761d5f with merge 09ef74fee7fc6620bd437158371e2e9bc647e8ab... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
Failed by #98360, closing. |
Successful merges:
let
s in certain places #97295 ([rustc_parse] Forbidlet
s in certain places)impl trait
under binders #98371 (Fix printingimpl trait
under binders)python3
notpython
#98474 (x.py: Support systems with onlypython3
notpython
)Failed merges:
r? @ghost
@rustbot modify labels: rollup
Create a similar rollup