warning: the feature `generic_associated_types` is incomplete and may cause the compiler to crash
  --> $DIR/streaming_iterator.rs:1:12
   |
LL | #![feature(generic_associated_types)]
   |            ^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(incomplete_features)]` on by default

error[E0109]: lifetime arguments are not allowed for this type
  --> $DIR/streaming_iterator.rs:18:41
   |
LL |     bar: <T as StreamingIterator>::Item<'static>,
   |                                         ^^^^^^^ lifetime argument not allowed

error[E0109]: lifetime arguments are not allowed for this type
  --> $DIR/streaming_iterator.rs:26:64
   |
LL | fn foo<T>(iter: T) where T: StreamingIterator, for<'a> T::Item<'a>: Display { /* ... */ }
   |                                                                ^^ lifetime argument not allowed

error[E0109]: lifetime arguments are not allowed for this type
  --> $DIR/streaming_iterator.rs:12:48
   |
LL |     fn next<'a>(&'a self) -> Option<Self::Item<'a>>;
   |                                                ^^ lifetime argument not allowed

error[E0109]: lifetime arguments are not allowed for this type
  --> $DIR/streaming_iterator.rs:38:37
   |
LL |     type Item<'a> = (usize, I::Item<'a>);
   |                                     ^^ lifetime argument not allowed

error[E0109]: lifetime arguments are not allowed for this type
  --> $DIR/streaming_iterator.rs:40:48
   |
LL |     fn next<'a>(&'a self) -> Option<Self::Item<'a>> {
   |                                                ^^ lifetime argument not allowed

error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0109`.
