//@ 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() {} |