2019-11-04 00:00:00 +00:00
|
|
|
// check-pass
|
2018-09-25 23:51:35 +02:00
|
|
|
#![allow(dead_code)]
|
2017-06-06 19:50:01 +03:00
|
|
|
struct Foo<T>(T);
|
|
|
|
|
|
|
|
struct IntoIter<T>(T);
|
|
|
|
|
|
|
|
impl<'a, T: 'a> Iterator for IntoIter<T> {
|
|
|
|
type Item = ();
|
|
|
|
|
|
|
|
fn next(&mut self) -> Option<()> {
|
|
|
|
None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<T> IntoIterator for Foo<T> {
|
|
|
|
type Item = ();
|
|
|
|
type IntoIter = IntoIter<T>;
|
|
|
|
|
|
|
|
fn into_iter(self) -> IntoIter<T> {
|
|
|
|
IntoIter(self.0)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|