about summary refs log tree commit diff
path: root/src/test/run-pass/trait-inheritance-simple.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/run-pass/trait-inheritance-simple.rs')
-rw-r--r--src/test/run-pass/trait-inheritance-simple.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/test/run-pass/trait-inheritance-simple.rs b/src/test/run-pass/trait-inheritance-simple.rs
index fcd4cf1de6b..9725b18ca0f 100644
--- a/src/test/run-pass/trait-inheritance-simple.rs
+++ b/src/test/run-pass/trait-inheritance-simple.rs
@@ -1,26 +1,22 @@
-trait Foo {
-    fn f();
-}
+trait Foo { fn f() -> int; }
+trait Bar : Foo { fn g() -> int; }
 
-trait Bar : Foo {
-    fn g();
-}
+struct A { x: int }
 
-struct A {
-    x: int
-}
+impl A : Foo { fn f() -> int { 10 } }
+impl A : Bar { fn g() -> int { 20 } }
 
-impl A : Bar {
-    fn g() { io::println("in g"); }
-    fn f() { io::println("in f"); }
+fn ff<T:Foo>(a: &T) -> int {
+    a.f()
 }
 
-fn h<T:Foo>(a: &T) {
-    a.f();
+fn gg<T:Bar>(a: &T) -> int {
+    a.g()
 }
 
 fn main() {
-    let a = A { x: 3 };
-    h(&a);
+    let a = &A { x: 3 };
+    assert ff(a) == 10;
+    assert gg(a) == 20;
 }