// run-pass
// Elaborated version of the opening example from RFC 738. This failed
// to compile before variance because invariance of `Option` prevented
// us from approximating the lifetimes of `field1` and `field2` to a
// common intersection.

#![allow(dead_code)]

struct List<'l> {
    field1: &'l i32,
    field2: Option<&'l i32>,
}

fn foo(field1: &i32, field2: Option<&i32>) -> i32 {
    let list = List { field1: field1, field2: field2 };
    *list.field1 + list.field2.cloned().unwrap_or(0)
}

fn main() {
    let x = 22;
    let y = Some(3);
    let z = None;
    assert_eq!(foo(&x, y.as_ref()), 25);
    assert_eq!(foo(&x, z.as_ref()), 22);
}
