//@ run-pass #![allow(dead_code)] #![allow(unused_variables)] trait SomeTrait {} struct Meow; impl SomeTrait for Meow {} struct Foo<'a> { x: &'a dyn SomeTrait, y: &'a dyn SomeTrait, } impl<'a> Foo<'a> { pub fn new<'b>(x: &'b dyn SomeTrait, y: &'b dyn SomeTrait) -> Foo<'b> { Foo { x: x, y: y } } } fn main() { let r = Meow; let s = Meow; let q = Foo::new(&r as &dyn SomeTrait, &s as &dyn SomeTrait); }