diff options
| -rw-r--r-- | tests/ui/traits/coherence-alias-hang.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/traits/coherence-alias-hang.rs b/tests/ui/traits/coherence-alias-hang.rs new file mode 100644 index 00000000000..37b80739589 --- /dev/null +++ b/tests/ui/traits/coherence-alias-hang.rs @@ -0,0 +1,23 @@ +//@ check-pass + +// Regression test for nalgebra hang <https://github.com/rust-lang/rust/issues/130056>. + +#![feature(lazy_type_alias)] +#![allow(incomplete_features)] + +type Id<T: ?Sized> = T; +trait NotImplemented {} + +struct W<T: ?Sized, U: ?Sized>(*const T, *const U); +trait Trait { + type Assoc: ?Sized; +} +impl<T: ?Sized + Trait> Trait for W<T, T> { + type Assoc = W<T::Assoc, Id<T::Assoc>>; +} + +trait Overlap<T: ?Sized> {} +impl<T: ?Sized> Overlap<T> for W<T, T> {} +impl<T: ?Sized + Trait + NotImplemented> Overlap<T::Assoc> for T {} + +fn main() {} |
