diff options
Diffstat (limited to 'tests/ui/traits/next-solver/alias-relate')
-rw-r--r-- | tests/ui/traits/next-solver/alias-relate/deeply-nested-no-hang.rs | 22 | ||||
-rw-r--r-- | tests/ui/traits/next-solver/alias-relate/opaque-hidden-ty-is-rigid-alias.rs | 8 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/traits/next-solver/alias-relate/deeply-nested-no-hang.rs b/tests/ui/traits/next-solver/alias-relate/deeply-nested-no-hang.rs new file mode 100644 index 000000000..91cfda37a --- /dev/null +++ b/tests/ui/traits/next-solver/alias-relate/deeply-nested-no-hang.rs @@ -0,0 +1,22 @@ +// check-pass +// compile-flags: -Znext-solver +// regression test for trait-system-refactor-initiative#68 +trait Identity { + type Assoc: ?Sized; +} + +impl<T: ?Sized> Identity for T { + type Assoc = T; +} + +type Id<T> = <T as Identity>::Assoc; + +type Five<T> = Id<Id<Id<Id<Id<T>>>>>; +type Ty<T> = Five<Five<Five<Five<Five<T>>>>>; + +trait Trait<T> {} + +impl<T> Trait<T> for Ty<T> {} +impl Trait<u32> for Ty<i32> {} + +fn main() {} diff --git a/tests/ui/traits/next-solver/alias-relate/opaque-hidden-ty-is-rigid-alias.rs b/tests/ui/traits/next-solver/alias-relate/opaque-hidden-ty-is-rigid-alias.rs new file mode 100644 index 000000000..88bbd13f9 --- /dev/null +++ b/tests/ui/traits/next-solver/alias-relate/opaque-hidden-ty-is-rigid-alias.rs @@ -0,0 +1,8 @@ +// check-pass +// compile-flags: -Znext-solver + +fn test<T: Iterator>(x: T::Item) -> impl Sized { + x +} + +fn main() {} |