diff options
Diffstat (limited to 'src/test/run-pass/obj-self-3.rs')
| -rw-r--r-- | src/test/run-pass/obj-self-3.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/run-pass/obj-self-3.rs b/src/test/run-pass/obj-self-3.rs new file mode 100644 index 00000000..183bb3c7 --- /dev/null +++ b/src/test/run-pass/obj-self-3.rs @@ -0,0 +1,31 @@ +// xfail-boot +fn main() { + + obj foo() { + impure fn m1(mutable int i) -> int { + i += 1; + ret i; + } + impure fn m2(mutable int i) -> int { + ret self.m1(i); + } + impure fn m3(mutable int i) -> int { + i += 1; + ret self.m1(i); + } + } + + auto a = foo(); + let int i = 0; + + // output should be: 0, 1, 2, 4 + log i; + i = a.m1(i); + log i; + i = a.m2(i); + log i; + i = a.m3(i); + log i; +} + + |