about summary refs log tree commit diff
path: root/src/test/run-pass/obj-recursion.rs
blob: 4c8f8d5a5c21fdfa46a805dcd1cc7218900be258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19


type adder =
    obj {
        fn add() ;
    };

obj leaf_adder(int x) {
    fn add() { log "leaf"; log x; }
}

obj delegate_adder(adder a) {
    fn add() { a.add(); }
}

fn main() {
    auto x = delegate_adder(delegate_adder(delegate_adder(leaf_adder(10))));
    x.add();
}