// check-pass #![allow(incomplete_features)] #![feature(associated_type_bounds)] trait MP { type T<'a>; } struct S(String); impl MP for S { type T<'a> = &'a str; } trait SR: MP { fn sr(&self) -> i32 where for<'a> IM: T::T<'a>>>; } trait T { type T; } trait U {} fn main() {}