-
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 #119634
Rollup of 8 pull requests #119634
Conversation
Use Expr instead. Use `ExprKind::Let` to represent if let guards.
Use Expr instead. Use `ExprKind::Let` to represent if let guards.
Match guards with an if let guard or an if let chain guard should have a temporary scope of the whole arm. This is to allow ref bindings to temporaries to borrow check.
…den-suggest, r=davidtwco Hide foreign `#[doc(hidden)]` paths in import suggestions Stops the compiler from suggesting to import foreign `#[doc(hidden)]` paths. ```@rustbot``` label A-suggestion-diagnostics
…nds, r=compiler-errors Imply outlives-bounds on lazy type aliases Fixes rust-lang#118479. r? types
…mpiler-errors Make `negative_bounds` internal & fix some of its issues r? compiler-errors
…bject-safety-error, r=Nilstrieb Use `resolutions(()).effective_visiblities` to avoid cycle errors in `report_object_error` Inside of `report_object_error`, using the `effective_visibilities` query causes cycles since it calls `type_of`, which itself may call `typeck`, which may end up reporting its own object-safety errors. Fixes rust-lang#119346 Fixes rust-lang#119502
…tion, r=compiler-errors Fix scoping for let chains in match guards If let guards were previously represented as a different type of guard in HIR and THIR. This meant that let chains in match guards were not handled correctly because they were treated exactly like normal guards. - Remove `hir::Guard` and `thir::Guard`. - Make the scoping different between normal guards and if let guards also check for let chains. closes rust-lang#118593
…r=oli-obk Check yield terminator's resume type in borrowck In borrowck, we didn't check that the lifetimes of the `TerminatorKind::Yield`'s `resume_place` were actually compatible with the coroutine's signature. That means that the lifetimes were totally going unchecked. Whoops! This PR implements this checking. Fixes rust-lang#119564 r? types
…ulacrum cstore: Remove unnecessary locking from `CrateMetadata` Locks and atomics in `CrateMetadata` fields were necessary before rust-lang#107765 when `CStore` was cloneable, but now they are not necessary and can be removed after restructuring the code a bit to please borrow checker. All remaining locked fields in `CrateMetadata` are lazily populated caches.
…=compiler-errors never patterns: Document behavior of never patterns with macros-by-example `never_patterns` makes `!` parse as a pattern so I was worried about breaking macros-by-example matching. Turns out we're fine because the cases that now match `$p:pat` used to error in the past. The only tricky case is `!` by itself, which backwards-compatibly doesn't match `$p:pat`. I have no idea why tho, I didn't think of that when I was implementing parsing 😅. This adds tests so we don't regress the current behavior. r? `@compiler-errors`
@bors r+ rollup=never p=8 |
☀️ Test successful - checks-actions |
📌 Perf builds for each rolled up PR:
previous master: b8c207435c In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (595bc6f): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. 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: 665.928s -> 668.481s (0.38%) |
Successful merges:
#[doc(hidden)]
paths in import suggestions #119151 (Hide foreign#[doc(hidden)]
paths in import suggestions)negative_bounds
internal & fix some of its issues #119354 (Makenegative_bounds
internal & fix some of its issues)resolutions(()).effective_visiblities
to avoid cycle errors inreport_object_error
#119506 (Useresolutions(()).effective_visiblities
to avoid cycle errors inreport_object_error
)CrateMetadata
#119589 (cstore: Remove unnecessary locking fromCrateMetadata
)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup