aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/obj-recursion.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/run-pass/obj-recursion.rs b/src/test/run-pass/obj-recursion.rs
new file mode 100644
index 00000000..3e562e36
--- /dev/null
+++ b/src/test/run-pass/obj-recursion.rs
@@ -0,0 +1,25 @@
+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();
+} \ No newline at end of file