]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/trait-static-method-overwriting.rs
Auto merge of #22517 - brson:relnotes, r=Gankro
[rust.git] / src / test / run-pass / trait-static-method-overwriting.rs
1
2 // Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
3 // file at the top-level directory of this distribution and at
4 // http://rust-lang.org/COPYRIGHT.
5 //
6 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9 // option. This file may not be copied, modified, or distributed
10 // except according to those terms.
11
12 mod base {
13     pub trait HasNew<T> {
14         fn new() -> Self;
15     }
16
17     pub struct Foo {
18         dummy: (),
19     }
20
21     impl ::base::HasNew<Foo> for Foo {
22         fn new() -> Foo {
23             println!("Foo");
24             Foo { dummy: () }
25         }
26     }
27
28     pub struct Bar {
29         dummy: (),
30     }
31
32     impl ::base::HasNew<Bar> for Bar {
33         fn new() -> Bar {
34             println!("Bar");
35             Bar { dummy: () }
36         }
37     }
38 }
39
40 pub fn main() {
41     let _f: base::Foo = base::HasNew::<base::Foo>::new();
42     let _b: base::Bar = base::HasNew::<base::Bar>::new();
43 }