about summary refs log tree commit diff
path: root/tests/ui/lifetimes/trait-object-constructor-14821.rs
blob: 76f0c7514bc335b8be39ce0d01091a62131cb05c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//! Regression test for https://github.com/rust-lang/rust/issues/14821

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