diff options
| author | Graydon Hoare <[email protected]> | 2010-06-25 12:15:40 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-06-25 12:15:40 -0700 |
| commit | c06ea8f9445dbb5eda99ac8730d7fb2177df6816 (patch) | |
| tree | acf35b5b3a2d1d0a37aede3ec7193eaa5a588f3f /src/test/run-pass/obj-recursion.rs | |
| parent | Unlink (doubly) gc chain on free. (diff) | |
| download | rust-c06ea8f9445dbb5eda99ac8730d7fb2177df6816.tar.xz rust-c06ea8f9445dbb5eda99ac8730d7fb2177df6816.zip | |
Add test of recursive object types (ha, work by default) and fix effect-walker bug revealed by it.
Diffstat (limited to 'src/test/run-pass/obj-recursion.rs')
| -rw-r--r-- | src/test/run-pass/obj-recursion.rs | 25 |
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 |