// See https://github.com/rust-lang/rust/issues/88442 // run-rustfix // edition:2018 // check-pass #![allow(unused)] #![warn(rust_2021_prelude_collisions)] trait AnnotatableTryInto { fn try_into(self) -> Result where Self: std::convert::TryInto { std::convert::TryInto::try_into(self) } } impl AnnotatableTryInto for T where T: From {} fn main() -> Result<(), &'static str> { let x: u64 = 1; AnnotatableTryInto::try_into::(x).or(Err("foo"))?.checked_sub(1); //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 //~| WARNING this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! AnnotatableTryInto::try_into::(x).or(Err("foo"))?; //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 //~| WARNING this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! Ok(()) }