Checking to make sure we know what 'self' is in nested objects.
This commit is contained in:
parent
b74d0d7c3d
commit
38b37fcbdb
1 changed files with 45 additions and 0 deletions
45
src/test/run-pass/nested-obj-self.rs
Normal file
45
src/test/run-pass/nested-obj-self.rs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
fn main() {
|
||||
|
||||
obj foo() {
|
||||
fn m1() -> str {
|
||||
ret "foo.m1";
|
||||
}
|
||||
fn m2() -> str {
|
||||
ret self.m1();
|
||||
}
|
||||
fn m3() -> str {
|
||||
let str s1 = self.m2();
|
||||
assert s1 == "foo.m1";
|
||||
|
||||
obj bar() {
|
||||
fn m1() -> str {
|
||||
ret "bar.m1";
|
||||
}
|
||||
|
||||
fn m2() -> str {
|
||||
ret self.m1();
|
||||
}
|
||||
}
|
||||
|
||||
auto b = bar();
|
||||
let str s3 = b.m2();
|
||||
|
||||
let str s4 = self.m2();
|
||||
assert s4 == "foo.m1";
|
||||
|
||||
ret s3;
|
||||
}
|
||||
}
|
||||
|
||||
auto a = foo();
|
||||
|
||||
let str s1 = a.m1();
|
||||
assert s1 == "foo.m1";
|
||||
|
||||
let str s2 = a.m2();
|
||||
assert s2 == "foo.m1";
|
||||
|
||||
let str s3 = a.m3();
|
||||
assert s3 == "bar.m1";
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue