summaryrefslogtreecommitdiff
path: root/test/files/pos
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos')
-rw-r--r--test/files/pos/bug0305.scala7
-rw-r--r--test/files/pos/bug573.scala43
-rw-r--r--test/files/pos/bug578.scala7
-rw-r--r--test/files/pos/testCoercionThis.scala19
4 files changed, 76 insertions, 0 deletions
diff --git a/test/files/pos/bug0305.scala b/test/files/pos/bug0305.scala
new file mode 100644
index 0000000000..1219c27030
--- /dev/null
+++ b/test/files/pos/bug0305.scala
@@ -0,0 +1,7 @@
+object Test extends Application {
+
+ def foo(is:Int*) = 1;
+ def foo(i:Int) = 2;
+
+ assert(foo( List(3):_* ) == 1)
+}
diff --git a/test/files/pos/bug573.scala b/test/files/pos/bug573.scala
new file mode 100644
index 0000000000..694d001e3c
--- /dev/null
+++ b/test/files/pos/bug573.scala
@@ -0,0 +1,43 @@
+package lampion.collections;
+
+object DirX {
+ abstract class Dir {
+ def reverse : Dir;
+ }
+ object BEFORE extends Dir {
+ def reverse = AFTER;
+ }
+ object AFTER extends Dir {
+ def reverse = BEFORE;
+ }
+}
+
+import DirX._;
+
+abstract class Linked {
+ type Node <: Node0;
+
+ abstract class Node0 {
+ self: Node =>
+
+ var next : Node = _;
+ var prev : Node = _;
+
+ def get(dir : Dir) = if (dir == BEFORE) prev; else next;
+ private def set(dir : Dir, node : Node) =
+ if (dir == BEFORE) prev = node; else next = node;
+
+ def link(dir : Dir, node : Node) = {
+ assert(get(dir) == null);
+ assert(node.get(dir.reverse) == null);
+ set(dir, node);
+ node.set(dir.reverse, self);
+ }
+
+
+ def end(dir : Dir) : Node = {
+ if (get(dir) == null) this;
+ else get(dir).end(dir);
+ }
+ }
+}
diff --git a/test/files/pos/bug578.scala b/test/files/pos/bug578.scala
new file mode 100644
index 0000000000..6f95dd8cea
--- /dev/null
+++ b/test/files/pos/bug578.scala
@@ -0,0 +1,7 @@
+object Test {
+ val x = Nil
+ val x2: Nil.type = x
+ val y = None
+ val y2: None.type = y
+ Console.println("Okay")
+}
diff --git a/test/files/pos/testCoercionThis.scala b/test/files/pos/testCoercionThis.scala
new file mode 100644
index 0000000000..5631b33306
--- /dev/null
+++ b/test/files/pos/testCoercionThis.scala
@@ -0,0 +1,19 @@
+object Test {
+ implicit def foo2bar(foo: Foo): Bar = foo.bar
+
+ class Foo(val bar: Bar) {
+ def testCoercion = {
+ val a: this.type = this
+ a.baz /* here, foo2bar is inferred by the compiler, as expected */
+ }
+ // def testCoercionThis0 = baz
+ // --> error: not found: value baz
+ // PP: is that something we really want to work? Seems like sketchville.
+ //
+ // These work, so I moved this out of pending.
+ def testCoercionThis1 = this.baz
+ def testCoercionThis2 = (this: Foo).baz
+ }
+
+ class Bar { def baz = System.out.println("baz") }
+}