//@ check-pass //@ revisions: ai ia ii //@ compile-flags: -Znext-solver=coherence // Regression test for nalgebra hang . #![feature(lazy_type_alias)] #![allow(incomplete_features)] type Id = T; trait NotImplemented {} struct W<'a, T: ?Sized, U: ?Sized>(&'a (), *const T, *const U); trait Trait { type Assoc: ?Sized; } impl<'a, T: ?Sized + Trait> Trait for W<'a, T, T> { #[cfg(ai)] type Assoc = W<'a, T::Assoc, Id>; #[cfg(ia)] type Assoc = W<'a, Id, T::Assoc>; #[cfg(ii)] type Assoc = W<'a, Id, Id>; } trait Overlap {} impl<'a, T: ?Sized> Overlap for W<'a, T, T> {} impl Overlap for T {} fn main() {}