diff options
| author | Joshua Nelson <jyn514@gmail.com> | 2021-12-01 19:00:27 +0000 |
|---|---|---|
| committer | Joshua Nelson <jyn514@gmail.com> | 2021-12-01 19:22:24 +0000 |
| commit | 18ddf8d636289444a3bc0eaffde9e6c24eb621b4 (patch) | |
| tree | de9bdb567fdaa58672f124be3e745a31b3fb1c73 /src/test/rustdoc-ui | |
| parent | f04a2f4b8e89eac1119061ea2055d33c97e618b4 (diff) | |
Use `try_normalize_erasing_regions` instead of a custom infer context
This unfortunately is still giving an unsilenceable overflow error :(
Diffstat (limited to 'src/test/rustdoc-ui')
| -rw-r--r-- | src/test/rustdoc-ui/auxiliary/overflow.rs | 20 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/normalize-cycle.rs | 25 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/normalize-overflow.rs | 3 |
3 files changed, 48 insertions, 0 deletions
diff --git a/src/test/rustdoc-ui/auxiliary/overflow.rs b/src/test/rustdoc-ui/auxiliary/overflow.rs new file mode 100644 index 00000000000..ff65936bec9 --- /dev/null +++ b/src/test/rustdoc-ui/auxiliary/overflow.rs @@ -0,0 +1,20 @@ +pub struct B0; +pub struct B1; +use std::ops::Shl; +use std::ops::Sub; +pub type Shleft<A, B> = <A as Shl<B>>::Output; +pub type Sub1<A> = <A as Sub<B1>>::Output; +pub struct UInt<U, B> { + pub(crate) msb: U, + pub(crate) lsb: B, +} +impl<U, B, Ur, Br> Shl<UInt<Ur, Br>> for UInt<U, B> +where + UInt<Ur, Br>: Sub<B1>, + UInt<UInt<U, B>, B0>: Shl<Sub1<UInt<Ur, Br>>>, +{ + type Output = Shleft<UInt<UInt<U, B>, B0>, Sub1<UInt<Ur, Br>>>; + fn shl(self, rhs: UInt<Ur, Br>) -> Self::Output { + unimplemented!() + } +} diff --git a/src/test/rustdoc-ui/normalize-cycle.rs b/src/test/rustdoc-ui/normalize-cycle.rs new file mode 100644 index 00000000000..f48cad373cd --- /dev/null +++ b/src/test/rustdoc-ui/normalize-cycle.rs @@ -0,0 +1,25 @@ +// check-pass +// Regresion test for <https://github.com/rust-lang/rust/issues/79459>. +pub trait Query {} + +pub trait AsQuery { + type Query; +} + +impl<T: Query> AsQuery for T { + type Query = T; +} + +pub trait SelectDsl<Selection> { + type Output; +} + +impl<T, Selection> SelectDsl<Selection> for T +where + T: AsQuery, + T::Query: SelectDsl<Selection>, +{ + type Output = <T::Query as SelectDsl<Selection>>::Output; +} + +pub type Select<Source, Selection> = <Source as SelectDsl<Selection>>::Output; diff --git a/src/test/rustdoc-ui/normalize-overflow.rs b/src/test/rustdoc-ui/normalize-overflow.rs new file mode 100644 index 00000000000..0cdcc88e314 --- /dev/null +++ b/src/test/rustdoc-ui/normalize-overflow.rs @@ -0,0 +1,3 @@ +// aux-crate:overflow=overflow.rs +// check-pass +// Regression test for <https://github.com/rust-lang/rust/issues/79506>. |
