error[E0271]: type mismatch resolving `<::A as MultiDispatch>::O == T` --> $DIR/issue-24204.rs:14:12 | LL | trait Trait: Sized { | ----- required by a bound in this LL | type A: MultiDispatch; | -------- required by this bound in `Trait` ... LL | fn test>(b: i32) -> T where T::A: MultiDispatch { T::new(b) } | - ^^^^^^^^^^^^ expected type parameter `T`, found associated type | | | this type parameter | = note: expected type parameter `T` found associated type `<::A as MultiDispatch>::O` = note: you might be missing a type parameter or trait bound error: aborting due to previous error For more information about this error, try `rustc --explain E0271`.