about summary refs log tree commit diff
path: root/src/test/run-pass/obj-recursion.rs
blob: 3c4346af32e8d80dec4e1cd1efced3a7e2175986 (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(x: int) {
    fn add() { log "leaf"; log x; }
}

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

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