diff options
Diffstat (limited to 'src/test/ui/rust-2021/future-prelude-collision.fixed')
| -rw-r--r-- | src/test/ui/rust-2021/future-prelude-collision.fixed | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/src/test/ui/rust-2021/future-prelude-collision.fixed b/src/test/ui/rust-2021/future-prelude-collision.fixed deleted file mode 100644 index 43b0ec1c3e6..00000000000 --- a/src/test/ui/rust-2021/future-prelude-collision.fixed +++ /dev/null @@ -1,98 +0,0 @@ -// run-rustfix -// edition:2018 -// check-pass -#![warn(rust_2021_prelude_collisions)] - -trait TryIntoU32 { - fn try_into(self) -> Result<u32, ()>; -} - -impl TryIntoU32 for u8 { - fn try_into(self) -> Result<u32, ()> { - Ok(self as u32) - } -} - -// needed for autoref test -impl TryIntoU32 for &f32 { - fn try_into(self) -> Result<u32, ()> { - Ok(*self as u32) - } -} - -trait TryFromU8: Sized { - fn try_from(x: u8) -> Result<Self, ()>; -} - -impl TryFromU8 for u32 { - fn try_from(x: u8) -> Result<Self, ()> { - Ok(x as u32) - } -} - -impl TryIntoU32 for *const u16 { - fn try_into(self) -> Result<u32, ()> { - Ok(unsafe { *self } as u32) - } -} - -trait FromByteIterator { - fn from_iter<T>(iter: T) -> Self - where - T: Iterator<Item = u8>; -} - -impl FromByteIterator for Vec<u8> { - fn from_iter<T>(iter: T) -> Self - where - T: Iterator<Item = u8>, - { - iter.collect() - } -} - -fn main() { - // test dot-call that will break in 2021 edition - let _: u32 = TryIntoU32::try_into(3u8).unwrap(); - //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - // test associated function call that will break in 2021 edition - let _ = <u32 as TryFromU8>::try_from(3u8).unwrap(); - //~^ WARNING trait-associated function `try_from` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - // test reverse turbofish too - let _ = <Vec<u8> as FromByteIterator>::from_iter(vec![1u8, 2, 3, 4, 5, 6].into_iter()); - //~^ WARNING trait-associated function `from_iter` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - // negative testing lint (this line should *not* emit a warning) - let _: u32 = TryFromU8::try_from(3u8).unwrap(); - - // test type omission - let _: u32 = <_ as TryFromU8>::try_from(3u8).unwrap(); - //~^ WARNING trait-associated function `try_from` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - // test autoderef - let _: u32 = TryIntoU32::try_into(*(&3u8)).unwrap(); - //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - // test autoref - let _: u32 = TryIntoU32::try_into(&3.0).unwrap(); - //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - let mut data = 3u16; - let mut_ptr = std::ptr::addr_of_mut!(data); - let _: u32 = TryIntoU32::try_into(mut_ptr as *const _).unwrap(); - //~^ WARNING trait method `try_into` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition - - type U32Alias = u32; - let _ = <U32Alias as TryFromU8>::try_from(3u8).unwrap(); - //~^ WARNING trait-associated function `try_from` will become ambiguous in Rust 2021 - //~^^ WARNING this is accepted in the current edition -} |
