Skip to content

Commit ff11eae

Browse files
committed
Auto merge of #124097 - compiler-errors:box-into-iter, r=WaffleLapkin
Add `IntoIterator` for `Box<[T]>` + edition 2024-specific lints * Adds a similar method probe opt-out mechanism to the `[T;N]: IntoIterator` implementation for edition 2021. * Adjusts the relevant lints (shadowed `.into_iter()` calls, new source of method ambiguity). * Adds some tests. * Took the liberty to rework the logic in the `ARRAY_INTO_ITER` lint, since it was kind of confusing. Based mostly off of #116607. ACP: rust-lang/libs-team#263 References #59878 Tracking for Rust 2024: rust-lang/rust#123759 Crater run was done here: rust-lang/rust#116607 (comment) Consensus afaict was that there is too much breakage, so let's do this in an edition-dependent way much like `[T; N]: IntoIterator`.
2 parents 0b2bf65 + d074351 commit ff11eae

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

tests/fail/shims/backtrace/bad-backtrace-decl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ extern "Rust" {
55

66
fn main() {
77
let frames = unsafe { miri_get_backtrace(0) };
8-
for frame in frames.into_iter() {
8+
for frame in frames.iter() {
99
unsafe {
1010
miri_resolve_frame(*frame, 0); //~ ERROR: Undefined Behavior: bad declaration of miri_resolve_frame - should return a struct with 5 fields
1111
}

tests/pass/backtrace/backtrace-api-v0.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fn func_d() -> Box<[*mut ()]> {
2727
fn main() {
2828
let mut seen_main = false;
2929
let frames = func_a();
30-
for frame in frames.into_iter() {
30+
for frame in frames.iter() {
3131
let miri_frame = unsafe { miri_resolve_frame(*frame, 0) };
3232
let name = String::from_utf8(miri_frame.name.into()).unwrap();
3333
let filename = String::from_utf8(miri_frame.filename.into()).unwrap();

tests/pass/backtrace/backtrace-api-v1.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ fn func_d() -> Box<[*mut ()]> {
3232
fn main() {
3333
let mut seen_main = false;
3434
let frames = func_a();
35-
for frame in frames.into_iter() {
35+
for frame in frames.iter() {
3636
let miri_frame = unsafe { miri_resolve_frame(*frame, 1) };
3737

3838
let mut name = vec![0; miri_frame.name_len];

0 commit comments

Comments
 (0)