1 // Previously ICEd because we didn't properly track binders in suggestions
4 pub trait Foo<'de>: Sized {}
6 pub trait Bar<'a>: 'static {
11 type Bar: for<'a> Bar<'a>;
14 pub struct Baz<T>(pub T);
16 impl<'de, T> Foo<'de> for Baz<T> where T: Foo<'de> {}
20 impl<M> Dummy<M> for Empty
23 for<'de> Baz<<M::Bar as Bar<'de>>::Inner>: Foo<'de>,
33 pub struct EmptyBis<'a>(&'a [u8]);
35 impl<'a> Bar<'a> for EmptyBis<'static> {
36 type Inner = EmptyBis<'a>;
39 pub struct EmptyMarker;
41 impl Fubar for EmptyMarker {
42 type Bar = EmptyBis<'static>;
45 fn icey_bounds<D: Dummy<EmptyMarker>>(p: &D) {}
49 icey_bounds(&p); //~ERROR the trait bound