// check-pass trait Foo { type FooT: Foo; } impl Foo for () { type FooT = (); } trait Bar { type BarT: Bar; } impl Bar<()> for () { type BarT = (); } #[allow(dead_code)] fn test>() { } fn main() { }