3 #![feature(generic_associated_types)]
5 trait CallWithShim: Sized {
12 struct ShimMethod<T: CallWithShim + 'static>(pub &'static dyn for<'s> Fn(&'s mut T::Shim<'s>));
14 trait CallWithShim2: Sized {
21 struct ShimMethod2<T: CallWithShim2 + 'static>(pub &'static dyn for<'s> Fn(&'s mut T::Shim<S<'s>>));
23 trait Trait<'s, 't, 'u> {}
26 struct ShimMethod3<T: CallWithShim2 + 'static>(
27 pub &'static dyn for<'s> Fn(
28 &'s mut T::Shim<dyn for<'t> Fn(&'s mut T::Shim<dyn for<'u> Trait<'s, 't, 'u>>)>,
37 struct ShimMethod4<T: Trait2 + 'static>(pub &'static dyn for<'s> Fn(&'s mut T::As));