2018-08-30 12:18:55 +00:00
|
|
|
//@ run-pass
|
2018-09-25 21:51:35 +00:00
|
|
|
#![allow(dead_code)]
|
2012-11-01 22:08:36 +00:00
|
|
|
mod base {
|
2015-02-12 15:29:52 +00:00
|
|
|
pub trait HasNew {
|
2013-08-08 18:38:10 +00:00
|
|
|
fn new() -> Self;
|
2012-11-01 22:08:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pub struct Foo {
|
|
|
|
dummy: (),
|
|
|
|
}
|
|
|
|
|
2015-02-12 15:29:52 +00:00
|
|
|
impl ::base::HasNew for Foo {
|
2013-03-22 18:23:21 +00:00
|
|
|
fn new() -> Foo {
|
2014-01-09 10:06:55 +00:00
|
|
|
println!("Foo");
|
2012-11-01 22:08:36 +00:00
|
|
|
Foo { dummy: () }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub struct Bar {
|
|
|
|
dummy: (),
|
|
|
|
}
|
|
|
|
|
2015-02-12 15:29:52 +00:00
|
|
|
impl ::base::HasNew for Bar {
|
2013-03-22 18:23:21 +00:00
|
|
|
fn new() -> Bar {
|
2014-01-09 10:06:55 +00:00
|
|
|
println!("Bar");
|
2012-11-01 22:08:36 +00:00
|
|
|
Bar { dummy: () }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-02-02 03:43:17 +00:00
|
|
|
pub fn main() {
|
2015-02-12 15:29:52 +00:00
|
|
|
let _f: base::Foo = base::HasNew::new();
|
|
|
|
let _b: base::Bar = base::HasNew::new();
|
2012-11-01 22:08:36 +00:00
|
|
|
}
|