diff options
author | schinz <schinz@epfl.ch> | 2003-07-23 12:49:18 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-07-23 12:49:18 +0000 |
commit | d75d9c0d0748d75990bea971e61d765d819b0e10 (patch) | |
tree | 55fa6ee2f951f98824510127d38a71eebb691a72 /test/files/run | |
parent | b68cc177887e07f914c73e998f4aabb260c9a20f (diff) | |
download | scala-d75d9c0d0748d75990bea971e61d765d819b0e10.tar.gz scala-d75d9c0d0748d75990bea971e61d765d819b0e10.tar.bz2 scala-d75d9c0d0748d75990bea971e61d765d819b0e10.zip |
*** empty log message ***
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/NestedClasses.check | 9 | ||||
-rw-r--r-- | test/files/run/NestedClasses.scala | 98 |
2 files changed, 107 insertions, 0 deletions
diff --git a/test/files/run/NestedClasses.check b/test/files/run/NestedClasses.check new file mode 100644 index 0000000000..94576a5468 --- /dev/null +++ b/test/files/run/NestedClasses.check @@ -0,0 +1,9 @@ +e.e1 = 130 +cc.m = 3 +cc.am = 1 +cc.bm = 2 +aaa.f = 111 +bbb1.f = 42 +bbb2.f = 24 +bbb3.f = 24 +bbb4.f = 24 diff --git a/test/files/run/NestedClasses.scala b/test/files/run/NestedClasses.scala new file mode 100644 index 0000000000..41850b98e7 --- /dev/null +++ b/test/files/run/NestedClasses.scala @@ -0,0 +1,98 @@ +//############################################################################ +// Test nested classes +//############################################################################ +// $Id$ + +// The following set of classes tests nasty references to "outer" +// values. + +class A(pa : Int) { + def a1 = pa; + class B(pb : Int) { + def b1 = pa+pb+a1; + class C(pc : Int) extends A(b1) { + def c1 = pc+pb+pa + } + val c1 = new C(13) + } +} + +class M(mx : Int) { + def m1 = mx +} + +class A1(x : Int) extends A(x) with M(x) { + class D extends B(14) { + val c2 = new C(15); + class E extends C(16) { + def e1 = c1+b1+a1+m1; + def e2 = new D(); + } + } +} + +// The following set of classes test qualified "this" and "super" +// references. + +class AA { + def m = 1; + class BB { + def m = 2; + class CC { + def m = 3; + def am = AA.this.m; + def bm = BB.this.m; + } + } +} + +class AAA { + def f = 42; +} + +class BBB extends AAA { + override def f = 24; +} + +class AAA1 extends AAA { + override def f = 111; + class BBB1 extends BBB { + override def f = AAA1.super.f; + } + class BBB2 extends BBB { + override def f = BBB2.super.f; + } + class BBB3 extends BBB { + override def f = super.f; + } + class BBB4 extends BBB { } +} + +object Test { + def main(args: Array[String]): Unit = { + val a = new A1(12); + val d = new a.D; + val e = new d.E; + System.out.println("e.e1 = " + e.e1); + + val aa = new AA; + val bb = new aa.BB; + val cc = new bb.CC; + System.out.println("cc.m = " + cc.m); + System.out.println("cc.am = " + cc.am); + System.out.println("cc.bm = " + cc.bm); + + val aaa = new AAA1; + val bbb1 = new aaa.BBB1; + val bbb2 = new aaa.BBB2; + val bbb3 = new aaa.BBB3; + val bbb4 = new aaa.BBB4; + System.out.println("aaa.f = " + aaa.f); + System.out.println("bbb1.f = " + bbb1.f); + System.out.println("bbb2.f = " + bbb2.f); + System.out.println("bbb3.f = " + bbb3.f); + System.out.println("bbb4.f = " + bbb4.f); + } +} + +//############################################################################ |