aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/NestedClasses.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-12 18:30:53 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-12 18:30:53 +0200
commit89bacb9c25a58454ff1878e67f7ea07ffc8c269f (patch)
tree51f1ff6c66aebe1b6109b1cffcc2bb8e4cf760a3 /tests/pending/run/NestedClasses.scala
parenta0fa33deafbea1bf53edc068c5ed9db5592822f9 (diff)
downloaddotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.gz
dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.bz2
dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.zip
Run tests as they were in scala.
Diffstat (limited to 'tests/pending/run/NestedClasses.scala')
-rw-r--r--tests/pending/run/NestedClasses.scala97
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/pending/run/NestedClasses.scala b/tests/pending/run/NestedClasses.scala
new file mode 100644
index 000000000..6db713e08
--- /dev/null
+++ b/tests/pending/run/NestedClasses.scala
@@ -0,0 +1,97 @@
+//############################################################################
+// Test nested classes
+//############################################################################
+
+// 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)
+ }
+}
+
+trait M {
+ def m1 = 1
+}
+
+class A1(x : Int) extends A(x) with M {
+ 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;
+ Console.println("e.e1 = " + e.e1);
+
+ val aa = new AA;
+ val bb = new aa.BB;
+ val cc = new bb.CC;
+ Console.println("cc.m = " + cc.m);
+ Console.println("cc.am = " + cc.am);
+ Console.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;
+ Console.println("aaa.f = " + aaa.f);
+ Console.println("bbb1.f = " + bbb1.f);
+ Console.println("bbb2.f = " + bbb2.f);
+ Console.println("bbb3.f = " + bbb3.f);
+ Console.println("bbb4.f = " + bbb4.f);
+ }
+}
+
+//############################################################################