Skip to content

Commit c582c0c

Browse files
authored
Rollup merge of #129067 - cuviper:append, r=wesleywiser
Use `append` instead of `extend(drain(..))` The first commit adds `IndexVec::append` that forwards to `Vec::append`, and uses it in a couple places. The second commit updates `indexmap` for its new `IndexMap::append`, and also uses that in a couple places. These changes are similar to what [`clippy::extend_with_drain`](https://rust-lang.github.io/rust-clippy/master/index.html#/extend_with_drain) would suggest, just for other collection types.
2 parents d14fa85 + ce67e68 commit c582c0c

File tree

5 files changed

+12
-7
lines changed

5 files changed

+12
-7
lines changed

Diff for: Cargo.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -1775,9 +1775,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
17751775

17761776
[[package]]
17771777
name = "indexmap"
1778-
version = "2.2.6"
1778+
version = "2.4.0"
17791779
source = "registry+https://github.com/rust-lang/crates.io-index"
1780-
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
1780+
checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
17811781
dependencies = [
17821782
"equivalent",
17831783
"hashbrown",

Diff for: compiler/rustc_data_structures/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ bitflags = "2.4.1"
1010
either = "1.0"
1111
elsa = "=1.7.1"
1212
ena = "0.14.3"
13-
indexmap = { version = "2.0.0" }
13+
indexmap = { version = "2.4.0" }
1414
jobserver_crate = { version = "0.1.28", package = "jobserver" }
1515
measureme = "11"
1616
rustc-hash = "1.1.0"

Diff for: compiler/rustc_index/src/vec.rs

+5
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ impl<I: Idx, T> IndexVec<I, T> {
188188
let min_new_len = elem.index() + 1;
189189
self.raw.resize_with(min_new_len, fill_value);
190190
}
191+
192+
#[inline]
193+
pub fn append(&mut self, other: &mut Self) {
194+
self.raw.append(&mut other.raw);
195+
}
191196
}
192197

193198
/// `IndexVec` is often used as a map, so it provides some map-like APIs.

Diff for: compiler/rustc_mir_transform/src/inline.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ impl<'tcx> Inliner<'tcx> {
726726

727727
// Insert all of the (mapped) parts of the callee body into the caller.
728728
caller_body.local_decls.extend(callee_body.drain_vars_and_temps());
729-
caller_body.source_scopes.extend(&mut callee_body.source_scopes.drain(..));
729+
caller_body.source_scopes.append(&mut callee_body.source_scopes);
730730
if self
731731
.tcx
732732
.sess
@@ -740,7 +740,7 @@ impl<'tcx> Inliner<'tcx> {
740740
// still getting consistent results from the mir-opt tests.
741741
caller_body.var_debug_info.append(&mut callee_body.var_debug_info);
742742
}
743-
caller_body.basic_blocks_mut().extend(callee_body.basic_blocks_mut().drain(..));
743+
caller_body.basic_blocks_mut().append(callee_body.basic_blocks_mut());
744744

745745
caller_body[callsite.block].terminator = Some(Terminator {
746746
source_info: callsite.source_info,

Diff for: compiler/rustc_monomorphize/src/partitioning.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ fn merge_codegen_units<'tcx>(
371371
// Move the items from `cgu_src` to `cgu_dst`. Some of them may be
372372
// duplicate inlined items, in which case the destination CGU is
373373
// unaffected. Recalculate size estimates afterwards.
374-
cgu_dst.items_mut().extend(cgu_src.items_mut().drain(..));
374+
cgu_dst.items_mut().append(cgu_src.items_mut());
375375
cgu_dst.compute_size_estimate();
376376

377377
// Record that `cgu_dst` now contains all the stuff that was in
@@ -410,7 +410,7 @@ fn merge_codegen_units<'tcx>(
410410
// Move the items from `smallest` to `second_smallest`. Some of them
411411
// may be duplicate inlined items, in which case the destination CGU is
412412
// unaffected. Recalculate size estimates afterwards.
413-
second_smallest.items_mut().extend(smallest.items_mut().drain(..));
413+
second_smallest.items_mut().append(smallest.items_mut());
414414
second_smallest.compute_size_estimate();
415415

416416
// Don't update `cgu_contents`, that's only for incremental builds.

0 commit comments

Comments
 (0)