// revisions: base extended #![feature(generic_associated_types)] #![cfg_attr(extended, feature(generic_associated_types_extended))] #![cfg_attr(extended, allow(incomplete_features))] trait StreamingIterator { type Item<'a> where Self: 'a; fn size_hint(&self) -> (usize, Option); // Uncommenting makes `StreamingIterator` not object safe // fn next(&mut self) -> Self::Item<'_>; } fn min_size(x: &mut dyn for<'a> StreamingIterator = &'a i32>) -> usize { //[base]~^ the trait `StreamingIterator` cannot be made into an object x.size_hint().0 //[extended]~^ borrowed data escapes } fn main() {}