2021-10-18 09:46:59 -05:00
|
|
|
// check-pass
|
|
|
|
|
|
|
|
fn foo<T>(t: T) -> usize
|
|
|
|
where
|
|
|
|
for<'a> &'a T: IntoIterator,
|
|
|
|
for<'a> <&'a T as IntoIterator>::IntoIter: ExactSizeIterator,
|
|
|
|
{
|
|
|
|
t.into_iter().len()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
foo::<Vec<u32>>(vec![]);
|
|
|
|
}
|
2022-04-22 23:39:11 -05:00
|
|
|
|
|
|
|
mod another {
|
|
|
|
use std::ops::Deref;
|
|
|
|
|
|
|
|
fn test<T, TDeref>()
|
|
|
|
where
|
|
|
|
T: Deref<Target = TDeref>,
|
|
|
|
TDeref: ?Sized,
|
|
|
|
for<'a> &'a TDeref: IntoIterator,
|
|
|
|
for<'a> <&'a TDeref as IntoIterator>::IntoIter: Clone,
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
test::<Vec<u8>, _>();
|
|
|
|
}
|
|
|
|
}
|