2018-08-30 14:18:55 +02:00
|
|
|
// run-pass
|
2015-03-22 13:13:15 -07:00
|
|
|
// pretty-expanded FIXME #23616
|
|
|
|
|
2015-02-12 10:29:52 -05:00
|
|
|
use std::marker;
|
|
|
|
|
|
|
|
pub struct Foo<T>(marker::PhantomData<T>);
|
2014-10-31 16:20:25 +02:00
|
|
|
|
2015-01-02 10:25:54 -05:00
|
|
|
impl<T> Iterator for Foo<T> {
|
|
|
|
type Item = T;
|
|
|
|
|
2014-10-31 16:20:25 +02:00
|
|
|
fn next(&mut self) -> Option<T> {
|
|
|
|
None
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<T> Drop for Foo<T> {
|
|
|
|
fn drop(&mut self) {
|
|
|
|
self.next();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn foo<'a>(_: Foo<&'a ()>) {}
|
|
|
|
|
|
|
|
pub fn main() {}
|