-
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 8 pull requests #121036
Rollup of 8 pull requests #121036
Conversation
The check within changed from `delay_span_bug` to `delay_good_path_bug` in rust-lang#110476, and removing the check altogether was considered. It's a very weak sanity check and gets in the way of removing good path delayed bugs altogether, so this PR just removes it.
It's only has a single remaining purpose: to ensure that a diagnostic is printed when `trimmed_def_paths` is used. It's an annoying mechanism: weak, with odd semantics, badly named, and gets in the way of other changes. This commit replaces it with a simpler `must_produce_diag` mechanism, getting rid of a diagnostic `Level` along the way.
with this, alias-relate treats all aliases the same way and it can be used for structural normalization.
Swapping the direction of this merge produces the same results, but means that we never need to mutate `curr`.
Now that we never mutate `curr.span`, we don't need to store its original span separately.
This requires some extra boilerplate, but in exchange it becomes much easier to see how each field and method is actually used.
Now that `prev` has its own dedicated struct, we can store the original span in that struct, instead of in a separate field in the refiner.
If we only check for duplicate spans when `prev` is unmodified, we reduce the number of situations that `update_pending_dups` needs to handle. This could potentially change the coverage spans we produce in some unknown corner cases, but none of our current coverage tests indicate any change.
unstable-book: add quick-edit link
…erge, r=GuillaumeGomez rustdoc: Fix handling of doc_auto_cfg feature for cfg attributes on glob reexport This is a follow-up of rust-lang#120501 and a part of rust-lang#120487. r? `@notriddle`
modify alias-relate to also normalize ambiguous opaques allows a bunch of further cleanups and generally simplifies the type system. To handle rust-lang/trait-system-refactor-initiative#8 we'll have to add a some additional complexity to the `(Alias, Infer)` branches in alias-relate, so removing the opaque type special case here is really valuable. It does worsen `deduce_closure_signature` and friends even more as they now receive an inference variable which is only constrained via an `AliasRelate` goal. These probably have to look into alias relate goals somehow. Leaving that for a future PR as this is something we'll have to tackle regardless. r? `@compiler-errors`
Remove good path delayed bugs Because they're not that useful, and kind of annoying. Details in the individual commits. r? ```@compiler-errors```
…sper match lowering: simplify block creation Match lowering was doing complicated things with block creation. As far as I can tell it was trying to avoid creating unneeded blocks, but of the three places that start out with `otherwise = &mut None`, two of them called `otherwise.unwrap_or_else(|| self.cfg.start_new_block())` anyway. As far as I can tell the only place where this PR makes a difference is in `lower_match_tree`, which did indeed sometimes avoid creating the unreachable final block + FakeRead. Unless this is important I propose we do the naive thing instead. I have not checked all the graph isomorphisms by hand, but at a glance the test diff looks sensible. r? `@matthewjasper`
coverage: Simplify some parts of the coverage span refiner This is another incremental step on my quest to dismantle the coverage span refiner into something more understandable and maintainable. The biggest change here is splitting up `CoverageSpan` into several more specific structs. Doing so reveals that most of the places that were using that struct only need a subset of its fields and methods. We can also get rid of separate tracking of `curr_original_span` and `prev_original_span`, by observing that `curr.span` never actually needs to be mutated, and that we can store `prev_original_span` directly in the dedicated struct for `prev`. `@rustbot` label +A-code-coverage
…nk-chapter, r=notriddle Extend intra-doc link chapter in the rustdoc book Linked to rust-lang#117178. r? `@notriddle`
RustWrapper: adapt for coverage mapping API changes There've been a number of changes to the coverage mapping API today, but the end result is that specifying the MCDC parameters is now optional (they've been moved to the end of the argument list and now default to `std::monostate`). `@rustbot` label: +llvm-main r? `@durin42`
@bors r+ rollup=never p=8 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: eaff1af8fd In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (a84bb95): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 631.785s -> 628.588s (-0.51%) |
Successful merges:
Failed merges:
force_print_diagnostic
#121014 (Removeforce_print_diagnostic
)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup