Auto merge of #104818 - scottmcm:refactor-extend-func, r=the8472
Stop peeling the last iteration of the loop in `Vec::resize_with` `resize_with` uses the `ExtendWith` code that peels the last iteration:341d8b8a2c/library/alloc/src/vec/mod.rs (L2525-L2529)But that's kinda weird for `ExtendFunc` because it does the same thing on the last iteration anyway:341d8b8a2c/library/alloc/src/vec/mod.rs (L2494-L2502)So this just has it use the normal `extend`-from-`TrustedLen` code instead. r? `@ghost`
This commit is contained in:
commit
faf1891deb
7 changed files with 106 additions and 44 deletions
|
|
@ -11,3 +11,10 @@ pub fn repeat_take_collect() -> Vec<u8> {
|
|||
// CHECK: call void @llvm.memset.{{.+}}({{i8\*|ptr}} {{.*}}align 1{{.*}} %{{[0-9]+}}, i8 42, i{{[0-9]+}} 100000, i1 false)
|
||||
iter::repeat(42).take(100000).collect()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @repeat_with_take_collect
|
||||
#[no_mangle]
|
||||
pub fn repeat_with_take_collect() -> Vec<u8> {
|
||||
// CHECK: call void @llvm.memset.{{.+}}({{i8\*|ptr}} {{.*}}align 1{{.*}} %{{[0-9]+}}, i8 13, i{{[0-9]+}} 12345, i1 false)
|
||||
iter::repeat_with(|| 13).take(12345).collect()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue