error[E0222]: ambiguous associated constant `K` in bounds of `Trait0` --> $DIR/ambiguity.rs:12:25 | LL | type const K: (); | ---------------- | | | ambiguous `K` from `Parent0` | ambiguous `K` from `Parent0` ... LL | fn take0(_: impl Trait0) {} | ^^^^^^^^^^^^^ ambiguous associated constant `K` | = help: consider introducing a new type parameter `T` and adding `where` constraints: where T: Trait0, T: Parent0::K = const { }, T: Parent0::K = const { } error[E0222]: ambiguous associated constant `C` in bounds of `Trait1` --> $DIR/ambiguity.rs:23:25 | LL | type const C: i32; | ----------------- ambiguous `C` from `Parent1` ... LL | type const C: &'static str; | -------------------------- ambiguous `C` from `Parent2` ... LL | fn take1(_: impl Trait1) {} | ^^^^^^^ ambiguous associated constant `C` | = help: consider introducing a new type parameter `T` and adding `where` constraints: where T: Trait1, T: Parent2::C = "?", T: Parent1::C = "?" error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0222`.