mirror of https://github.com/rust-lang/rust
46 lines
832 B
Rust
46 lines
832 B
Rust
//@ run-rustfix
|
|
//@ edition:2018
|
|
//@ check-pass
|
|
#![warn(rust_2021_prelude_collisions)]
|
|
#![allow(unreachable_code)]
|
|
|
|
macro_rules! foo {
|
|
() => {{
|
|
123;
|
|
S
|
|
}};
|
|
}
|
|
|
|
trait MyTry<T> {
|
|
fn try_into(self, _: u8);
|
|
}
|
|
|
|
struct S;
|
|
|
|
impl MyTry<i32> for S {
|
|
fn try_into(self, _: u8) {}
|
|
}
|
|
|
|
trait TryFromU8: Sized {
|
|
fn try_from(_: u8);
|
|
}
|
|
|
|
impl TryFromU8 for u32 {
|
|
fn try_from(_: u8) {}
|
|
}
|
|
|
|
macro_rules! bar {
|
|
() => {
|
|
u32
|
|
};
|
|
}
|
|
|
|
fn main() {
|
|
MyTry::try_into(foo!(), todo!());
|
|
//~^ WARNING trait method `try_into` will become ambiguous in Rust 2021
|
|
//~| WARNING this is accepted in the current edition
|
|
<bar!() as TryFromU8>::try_from(0);
|
|
//~^ WARNING trait-associated function `try_from` will become ambiguous in Rust 2021
|
|
//~| WARNING this is accepted in the current edition
|
|
}
|