Enable single Location to issue multiple borrows#159449
Conversation
|
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…ion, r=<try> Enable single Location to issue multiple borrows
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (544be1c): comparison URL. Overall result: no relevant changes - no action neededBenchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up. @rustbot label: -S-waiting-on-perf -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary 7.3%, secondary 6.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 4.5%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.1%, secondary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 491.028s -> 495.454s (0.90%) |
|
@rustbot reroll |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
I believe the failure is CI being flaky... maybe? |
|
I'm occupied with other issues that we are facing right now. @rustbot reroll |
|
Checked that none of the public functions I removed are relied on by rust-analyzer. One removed function (exposing the |
58bb0be to
69e55f3
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
Done. |
|
@bors r+ |
…-from-location, r=nnethercote Enable single Location to issue multiple borrows In the Reborrow work, a single MIR assignment statement can produce multiple borrows. To support that the GatherBorrows contents need to change a little. Aside from the `get_index_of` function which is used in three places, none of the changes affect code outside the `borrow_set.rs` file. I also changed the one `Vec` there was into a `SmallVec<[1]>` as that is the most likely case (I believe), and similarly used `SmallVec<[1]>` for the `Location->BorrowIndex[]` listing. r? compiler
…uwer Rollup of 10 pull requests Successful merges: - #159600 (`rust-analyzer` subtree update) - #158046 (proc_macro: preserve file module spans for inner attrs) - #159000 (Small cleanups to the incr comp session code) - #159449 (Enable single Location to issue multiple borrows) - #159587 (Improve `AttrItem::span`) - #159460 (Do not mark unnormalized const aliases as rigid when normalizing param env) - #159529 (Add regression test for nested replacement ranges in `collect_tokens`) - #159585 (Minor `TokenStream` improvements) - #159586 (Separate `InterpCx` usage by `ConstAnalysis` phases) - #159603 (Clarify `push_stream`/`push_tree`) Failed merges: - #159590 (Remove some dead code)
…uwer Rollup of 18 pull requests Successful merges: - #159600 (`rust-analyzer` subtree update) - #158046 (proc_macro: preserve file module spans for inner attrs) - #159000 (Small cleanups to the incr comp session code) - #159189 (Account for type alias projections in E0308 "expected/found" shortening logic) - #159449 (Enable single Location to issue multiple borrows) - #159544 (Suggest valid command-line crate names) - #159587 (Improve `AttrItem::span`) - #159594 (feat(rustc_hir_typeck): suggest `impl Fn` return for capturing closures) - #159597 (std: use `arc4random_buf` from libc) - #159599 (Resolver: Record at least 1 ambiguous trait if main decl is not a trait.) - #158061 (Make `pin!()` more foolproof.) - #159460 (Do not mark unnormalized const aliases as rigid when normalizing param env) - #159529 (Add regression test for nested replacement ranges in `collect_tokens`) - #159571 (Remove unused bundled library lookup for the local crate) - #159585 (Minor `TokenStream` improvements) - #159586 (Separate `InterpCx` usage by `ConstAnalysis` phases) - #159602 (Remove `ItemLike`) - #159603 (Clarify `push_stream`/`push_tree`) Failed merges: - #159590 (Remove some dead code)
Rollup merge of #159449 - aapoalas:borrowck/multiple-borrows-from-location, r=nnethercote Enable single Location to issue multiple borrows In the Reborrow work, a single MIR assignment statement can produce multiple borrows. To support that the GatherBorrows contents need to change a little. Aside from the `get_index_of` function which is used in three places, none of the changes affect code outside the `borrow_set.rs` file. I also changed the one `Vec` there was into a `SmallVec<[1]>` as that is the most likely case (I believe), and similarly used `SmallVec<[1]>` for the `Location->BorrowIndex[]` listing. r? compiler
In the Reborrow work, a single MIR assignment statement can produce multiple borrows. To support that the GatherBorrows contents need to change a little. Aside from the
get_index_offunction which is used in three places, none of the changes affect code outside theborrow_set.rsfile.I also changed the one
Vecthere was into aSmallVec<[1]>as that is the most likely case (I believe), and similarly usedSmallVec<[1]>for theLocation->BorrowIndex[]listing.r? compiler