Skip to content

Commit 38b37fc

Browse files
lkupergraydon
authored andcommitted
Checking to make sure we know what 'self' is in nested objects.
1 parent b74d0d7 commit 38b37fc

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/test/run-pass/nested-obj-self.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
fn main() {
2+
3+
obj foo() {
4+
fn m1() -> str {
5+
ret "foo.m1";
6+
}
7+
fn m2() -> str {
8+
ret self.m1();
9+
}
10+
fn m3() -> str {
11+
let str s1 = self.m2();
12+
assert s1 == "foo.m1";
13+
14+
obj bar() {
15+
fn m1() -> str {
16+
ret "bar.m1";
17+
}
18+
19+
fn m2() -> str {
20+
ret self.m1();
21+
}
22+
}
23+
24+
auto b = bar();
25+
let str s3 = b.m2();
26+
27+
let str s4 = self.m2();
28+
assert s4 == "foo.m1";
29+
30+
ret s3;
31+
}
32+
}
33+
34+
auto a = foo();
35+
36+
let str s1 = a.m1();
37+
assert s1 == "foo.m1";
38+
39+
let str s2 = a.m2();
40+
assert s2 == "foo.m1";
41+
42+
let str s3 = a.m3();
43+
assert s3 == "bar.m1";
44+
}
45+

0 commit comments

Comments
 (0)