#![deny(dead_code)] trait Trait { type Type; } impl Trait for () { type Type = (); } type Used = (); type Unused = (); //~ ERROR type alias `Unused` is never used fn foo() -> impl Trait {} fn main() { foo(); }