| // test for https://github.com/rust-lang/rust/issues/86940 |
| //@ run-rustfix |
| //@ edition:2018 |
| //@ check-pass |
| #![warn(rust_2021_prelude_collisions)] |
| #![allow(dead_code)] |
| #![allow(unused_imports)] |
| |
| struct Generic<'a, U>(&'a U); |
| |
| trait MyFromIter { |
| fn from_iter(_: i32) -> Self; |
| } |
| |
| impl MyFromIter for Generic<'static, i32> { |
| fn from_iter(_: i32) -> Self { |
| todo!() |
| } |
| } |
| |
| impl std::iter::FromIterator<i32> for Generic<'static, i32> { |
| fn from_iter<T: IntoIterator<Item = i32>>(_: T) -> Self { |
| todo!() |
| } |
| } |
| |
| fn main() { |
| <Generic<'_, _> as MyFromIter>::from_iter(1); |
| //~^ WARNING trait-associated function `from_iter` will become ambiguous in Rust 2021 |
| //~| this is accepted in the current edition (Rust 2018) |
| <Generic::<'static, i32> as MyFromIter>::from_iter(1); |
| //~^ WARNING trait-associated function `from_iter` will become ambiguous in Rust 2021 |
| //~| this is accepted in the current edition (Rust 2018) |
| <Generic::<'_, _> as MyFromIter>::from_iter(1); |
| //~^ WARNING trait-associated function `from_iter` will become ambiguous in Rust 2021 |
| //~| this is accepted in the current edition (Rust 2018) |
| } |