summaryrefslogtreecommitdiff
path: root/test/files/pos/compile.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos/compile.scala')
-rw-r--r--test/files/pos/compile.scala150
1 files changed, 150 insertions, 0 deletions
diff --git a/test/files/pos/compile.scala b/test/files/pos/compile.scala
new file mode 100644
index 0000000000..3ed733fd40
--- /dev/null
+++ b/test/files/pos/compile.scala
@@ -0,0 +1,150 @@
+//############################################################################
+// Compile Time Bugs & Test Cases
+//############################################################################
+// $Id$
+
+import java.lang.System; // to avoid name clash with .NET's library
+
+//############################################################################
+// Test 0
+
+/*
+class Test0Foo[X];
+
+object Test0Test {
+ type Gen[A] = Test0Foo[A];
+ class Tic(g: Test0Test.Gen[Int]);
+ class Tac(g: Gen[Int]);
+}
+
+//############################################################################
+// Test 1 - Single types in lambda lift
+
+object Test1 {
+ def main(args: Array[String]): Unit = {
+ List[args.type](args);
+ }
+ def foo[X]: Any = {
+ def bar(x: X) = List(x);
+ 0
+ }
+}
+
+//############################################################################
+// Test 2 - Local variables owned by other local variables
+
+class Test2_1(i: Int) {
+ val t = {
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ };
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ val y = {
+ val z = i;
+ z;
+ };
+ val z2_1 = i;
+}
+
+class Test2_2(i: Int) {
+ {
+ val t = {
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ };
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ val y = {
+ val z = i;
+ z;
+ };
+ val z2_2 = i;
+ 0
+ }
+}
+
+class Test2_3() {
+
+ def this(i: Int) = {
+ this();
+ val t = {
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ };
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ val y = {
+ val z = i;
+ z;
+ };
+ val z2_3 = i;
+ }
+
+ def test(i: Int): Int = {
+ val t = {
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ };
+ val x = {
+ val y = {
+ val z = i;
+ z;
+ };
+ };
+ val y = {
+ val z = i;
+ z;
+ };
+ val z_test = i;
+ 0
+ }
+
+}
+*/
+//############################################################################
+// Test 3 - Super Calls with Mixins
+
+class Test3Foo;
+
+trait Test3A[T] {
+ def fun: T = fun;
+}
+
+class Test3B extends Test3A[Test3Foo];
+
+trait Test3M extends Test3A[Test3Foo] {
+ override def fun: Test3Foo = super.fun;
+}
+
+class Test3C extends Test3B with Test3M;
+
+//############################################################################