| //@ known-bug: rust-lang/rust#126944 |
| // Step 1: Create two names for a single type: `Thing` and `AlsoThing` |
| impl DummyTrait for Dummy { |
| type AlsoThing = <Dummy as DummyTrait>::DummyType; |
| // Step 2: Create names for a single trait object type: `TraitObject` and `AlsoTraitObject` |
| type TraitObject = dyn SomeTrait<Item = AlsoThing>; |
| type AlsoTraitObject = dyn SomeTrait<Item = Thing>; |
| // Step 3: Force the compiler to check whether the two names are the same type |
| pub trait Subtrait: Supertrait<Foo = TraitObject> {} |
| pub trait HasOutput<A: ?Sized> { |
| F: HasOutput<dyn Subtrait<Foo = AlsoTraitObject>>, |