about summary refs log tree commit diff
path: root/src/test/rustdoc/issue-52873.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/rustdoc/issue-52873.rs')
-rw-r--r--src/test/rustdoc/issue-52873.rs171
1 files changed, 0 insertions, 171 deletions
diff --git a/src/test/rustdoc/issue-52873.rs b/src/test/rustdoc/issue-52873.rs
deleted file mode 100644
index 8000ce73bd4..00000000000
--- a/src/test/rustdoc/issue-52873.rs
+++ /dev/null
@@ -1,171 +0,0 @@
-// Regression test for #52873. We used to ICE due to unexpected
-// overflows when checking for "blanket impl inclusion".
-
-use std::marker::PhantomData;
-use std::cmp::Ordering;
-use std::ops::{Add, Mul};
-
-pub type True = B1;
-pub type False = B0;
-pub type U0 = UTerm;
-pub type U1 = UInt<UTerm, B1>;
-
-pub trait NonZero {}
-
-pub trait Bit {
-}
-
-pub trait Unsigned {
-}
-
-#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
-pub struct B0;
-
-impl B0 {
-    #[inline]
-    pub fn new() -> B0 {
-        B0
-    }
-}
-
-#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
-pub struct B1;
-
-impl B1 {
-    #[inline]
-    pub fn new() -> B1 {
-        B1
-    }
-}
-
-impl Bit for B0 {
-}
-
-impl Bit for B1 {
-}
-
-impl NonZero for B1 {}
-
-pub trait PrivatePow<Y, N> {
-    type Output;
-}
-pub type PrivatePowOut<A, Y, N> = <A as PrivatePow<Y, N>>::Output;
-
-pub type Add1<A> = <A as Add<::B1>>::Output;
-pub type Prod<A, B> = <A as Mul<B>>::Output;
-pub type Square<A> = <A as Mul>::Output;
-pub type Sum<A, B> = <A as Add<B>>::Output;
-
-#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
-pub struct UTerm;
-
-impl UTerm {
-    #[inline]
-    pub fn new() -> UTerm {
-        UTerm
-    }
-}
-
-impl Unsigned for UTerm {
-}
-
-#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Hash, Debug, Default)]
-pub struct UInt<U, B> {
-    _marker: PhantomData<(U, B)>,
-}
-
-impl<U: Unsigned, B: Bit> UInt<U, B> {
-    #[inline]
-    pub fn new() -> UInt<U, B> {
-        UInt {
-            _marker: PhantomData,
-        }
-    }
-}
-
-impl<U: Unsigned, B: Bit> Unsigned for UInt<U, B> {
-}
-
-impl<U: Unsigned, B: Bit> NonZero for UInt<U, B> {}
-
-impl Add<B0> for UTerm {
-    type Output = UTerm;
-    fn add(self, _: B0) -> Self::Output {
-        UTerm
-    }
-}
-
-impl<U: Unsigned, B: Bit> Add<B0> for UInt<U, B> {
-    type Output = UInt<U, B>;
-    fn add(self, _: B0) -> Self::Output {
-        UInt::new()
-    }
-}
-
-impl<U: Unsigned> Add<U> for UTerm {
-    type Output = U;
-    fn add(self, _: U) -> Self::Output {
-        unimplemented!()
-    }
-}
-
-impl<U: Unsigned, B: Bit> Mul<B0> for UInt<U, B> {
-    type Output = UTerm;
-    fn mul(self, _: B0) -> Self::Output {
-        UTerm
-    }
-}
-
-impl<U: Unsigned, B: Bit> Mul<B1> for UInt<U, B> {
-    type Output = UInt<U, B>;
-    fn mul(self, _: B1) -> Self::Output {
-        UInt::new()
-    }
-}
-
-impl<U: Unsigned> Mul<U> for UTerm {
-    type Output = UTerm;
-    fn mul(self, _: U) -> Self::Output {
-        UTerm
-    }
-}
-
-impl<Ul: Unsigned, B: Bit, Ur: Unsigned> Mul<UInt<Ur, B>> for UInt<Ul, B0>
-where
-    Ul: Mul<UInt<Ur, B>>,
-{
-    type Output = UInt<Prod<Ul, UInt<Ur, B>>, B0>;
-    fn mul(self, _: UInt<Ur, B>) -> Self::Output {
-        unimplemented!()
-    }
-}
-
-pub trait Pow<Exp> {
-    type Output;
-}
-
-impl<X: Unsigned, N: Unsigned> Pow<N> for X
-where
-    X: PrivatePow<U1, N>,
-{
-    type Output = PrivatePowOut<X, U1, N>;
-}
-
-impl<Y: Unsigned, X: Unsigned> PrivatePow<Y, U0> for X {
-    type Output = Y;
-}
-
-impl<Y: Unsigned, X: Unsigned> PrivatePow<Y, U1> for X
-where
-    X: Mul<Y>,
-{
-    type Output = Prod<X, Y>;
-}
-
-impl<Y: Unsigned, U: Unsigned, B: Bit, X: Unsigned> PrivatePow<Y, UInt<UInt<U, B>, B0>> for X
-where
-    X: Mul,
-    Square<X>: PrivatePow<Y, UInt<U, B>>,
-{
-    type Output = PrivatePowOut<Square<X>, Y, UInt<U, B>>;
-}