diff options
Diffstat (limited to 'src/test/ui/specialization/issue-39448.rs')
-rw-r--r-- | src/test/ui/specialization/issue-39448.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/test/ui/specialization/issue-39448.rs b/src/test/ui/specialization/issue-39448.rs deleted file mode 100644 index a15c4bd6b..000000000 --- a/src/test/ui/specialization/issue-39448.rs +++ /dev/null @@ -1,50 +0,0 @@ -#![feature(specialization)] //~ WARN the feature `specialization` is incomplete - -// Regression test for a specialization-related ICE (#39448). - -trait A: Sized { - fn foo(self, _: Self) -> Self { - self - } -} - -impl A for u8 {} -impl A for u16 {} - -impl FromA<u8> for u16 { - fn from(x: u8) -> u16 { - x as u16 - } -} - -trait FromA<T> { - fn from(t: T) -> Self; -} - -impl<T: A, U: A + FromA<T>> FromA<T> for U { - default fn from(x: T) -> Self { - ToA::to(x) - } -} - -trait ToA<T> { - fn to(self) -> T; -} - -impl<T, U> ToA<U> for T -where - U: FromA<T>, -{ - fn to(self) -> U { - U::from(self) - } -} - -#[allow(dead_code)] -fn foo<T: A, U: A>(x: T, y: U) -> U { - x.foo(y.to()).to() //~ ERROR overflow evaluating the requirement -} - -fn main() { - let z = foo(8u8, 1u16); -} |