| //@ check-pass | |
| use std::marker::PhantomData; | |
| use std::ops::Drop; | |
| // a >= b >= c >= a implies a = b = c | |
| struct DropMe<'a: 'b, 'b: 'c, 'c: 'a>( | |
| PhantomData<&'a ()>, | |
| PhantomData<&'b ()>, | |
| PhantomData<&'c ()>, | |
| ); | |
| // a >= b, a >= c, b >= a, c >= a implies a = b = c | |
| impl<'a: 'b + 'c, 'b: 'a, 'c: 'a> Drop for DropMe<'a, 'b, 'c> { | |
| fn drop(&mut self) {} | |
| } | |
| fn main() {} |