Warn when [T; N].into_iter() is ambiguous in the new edition. #88503
+91
−7
Conversation
r? @cjgillot (rust-highfive has picked a reviewer for you, use r? to override) |
return; | ||
} | ||
|
||
let prelude_or_array_lint = if segment.ident.name == sym::into_iter { |
cjgillot
Aug 30, 2021
Contributor
Can this test be merged with the previous one, for instance as a match
?
Can this test be merged with the previous one, for instance as a match
?
r=me with nit fixed. |
@bors r=cjgillot |
|
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Aug 31, 2021
Rollup of 14 pull requests Successful merges: - rust-lang#88394 (Document `std::env::current_exe` possible rename behaviour) - rust-lang#88406 (Tait nest infer test) - rust-lang#88408 (Add inference cycle TAIT test) - rust-lang#88409 (Add auto trait leakage TAIT test) - rust-lang#88413 (Add weird return types TAIT test) - rust-lang#88450 (fix(rustc_parse): correct span in `maybe_whole_expr!`) - rust-lang#88462 (rustdoc: Stop using resolver for macro loading) - rust-lang#88465 (Adding examples to docs of `std::time` module) - rust-lang#88486 (Remove unused arena macro args) - rust-lang#88492 (Use MaybeUninit::write in functor.rs) - rust-lang#88496 (Fix prelude collision lint suggestion for generics with lifetimes) - rust-lang#88497 (Fix prelude collision suggestions for glob imported traits. ) - rust-lang#88503 (Warn when [T; N].into_iter() is ambiguous in the new edition. ) - rust-lang#88509 (Don't suggest extra <> in dyn suggestion.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Fixes #88475
In #88475, a situation was found where
[T; N].into_iter()
becomes ambiguous in the new edition. This is different than the case where(&[T; N]).into_iter()
resolves differently, which was the only case handled by thearray_into_iter
lint. This is almost identical to the new-traits-in-the-prelude problem. Effectively, due to the array-into-iter hack disappearing in Rust 2021, we effectively addedIntoIterator
to the 'prelude' in Rust 2021 specifically for arrays.This modifies the prelude collisions lint to detect that case and emit a
array_into_iter
lint in that case.