This [example](https://play.rust-lang.org/?gist=ca7f01771b3c5e168c663cda4c34a5f2&version=nightly&backtrace=0) produced a spurious unused type alias warning: ```rust struct S<T>(T); type Alias<T> = S<T>; trait Tr<T> { fn f(&self) {} } impl<T> Tr<T> for S<T> {} impl<T> S<T> where Alias<T>: Tr<T> { fn g(&self) { self.f() } } fn main() { S(0).g(); } ```