]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/trait-static-method-overwriting.rs
* Introduce some changes by Angus Lees
[rustc.git] / src / test / run-pass / trait-static-method-overwriting.rs
CommitLineData
223e47cc 1
1a4d82fc 2// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
223e47cc
LB
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
12mod base {
13 pub trait HasNew<T> {
1a4d82fc 14 fn new() -> Self;
223e47cc
LB
15 }
16
17 pub struct Foo {
18 dummy: (),
19 }
20
21 impl ::base::HasNew<Foo> for Foo {
22 fn new() -> Foo {
1a4d82fc 23 println!("Foo");
223e47cc
LB
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 {
1a4d82fc 34 println!("Bar");
223e47cc
LB
35 Bar { dummy: () }
36 }
37 }
38}
39
40pub fn main() {
1a4d82fc
JJ
41 let _f: base::Foo = base::HasNew::<base::Foo>::new();
42 let _b: base::Bar = base::HasNew::<base::Bar>::new();
223e47cc 43}