// run-pass
// Test that `Box<Test>` is equivalent to `Box<Test+'static>`, both in
// fields and fn arguments.

// pretty-expanded FIXME #23616

#![allow(dead_code)]

trait Test {
    fn foo(&self) { }
}

struct SomeStruct {
    t: Box<dyn Test>,
    u: Box<dyn Test+'static>,
}

fn a(t: Box<dyn Test>, mut ss: SomeStruct) {
    ss.t = t;
}

fn b(t: Box<dyn Test+'static>, mut ss: SomeStruct) {
    ss.t = t;
}

fn c(t: Box<dyn Test>, mut ss: SomeStruct) {
    ss.u = t;
}

fn d(t: Box<dyn Test+'static>, mut ss: SomeStruct) {
    ss.u = t;
}

fn main() {
}
