summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/t2775.check8
-rw-r--r--test/files/neg/t4568.check4
-rw-r--r--test/files/neg/t4568.scala13
-rw-r--r--test/files/neg/t750.check15
-rw-r--r--test/files/neg/t750/AO_1.java5
-rw-r--r--test/files/neg/t750/Test_2.scala6
-rw-r--r--test/files/neg/t750b.check15
-rw-r--r--test/files/neg/t750b/AO.java5
-rw-r--r--test/files/neg/t750b/Test.scala6
-rw-r--r--test/files/pos/gen-traversable-methods.scala20
-rw-r--r--test/pending/neg/t2066.scala16
-rw-r--r--test/pending/pos/t5579.scala29
-rw-r--r--test/pending/pos/t5639/Bar.scala7
-rw-r--r--test/pending/pos/t5639/Foo.scala7
-rw-r--r--test/pending/pos/t5712.scala14
-rw-r--r--test/pending/presentation/t5708.check81
-rw-r--r--test/pending/presentation/t5708/Test.scala5
-rw-r--r--test/pending/presentation/t5708/src/Completions.scala11
-rw-r--r--test/pending/run/t5695.check2
-rw-r--r--test/pending/run/t5695/part_1.scala12
-rw-r--r--test/pending/run/t5695/part_2.scala8
21 files changed, 285 insertions, 4 deletions
diff --git a/test/files/neg/t2775.check b/test/files/neg/t2775.check
index f357221cd9..a1e950cf73 100644
--- a/test/files/neg/t2775.check
+++ b/test/files/neg/t2775.check
@@ -1,4 +1,4 @@
-t2775.scala:1: error: cannot find class tag for element type B.this.T
-trait B[S] { type T = S; val c = new Array[T](1) }
- ^
-one error found
+t2775.scala:1: error: cannot find array tag for element type B.this.T
+trait B[S] { type T = S; val c = new Array[T](1) }
+ ^
+one error found
diff --git a/test/files/neg/t4568.check b/test/files/neg/t4568.check
new file mode 100644
index 0000000000..f94d699486
--- /dev/null
+++ b/test/files/neg/t4568.check
@@ -0,0 +1,4 @@
+t4568.scala:8: error: recursive method isSubListOf needs result type
+ case h :: t => y.contains(h) && (t.isSubListOf(y.drop(y.indexOf(h) + 1)))
+ ^
+one error found
diff --git a/test/files/neg/t4568.scala b/test/files/neg/t4568.scala
new file mode 100644
index 0000000000..8067759262
--- /dev/null
+++ b/test/files/neg/t4568.scala
@@ -0,0 +1,13 @@
+object SubList {
+ implicit def sublistable[A](x: List[A]) = new SubListable(x)
+
+ class SubListable[A](x: List[A]) {
+ def isSubListOf(y: List[A]) = {
+ x match {
+ case Nil => true
+ case h :: t => y.contains(h) && (t.isSubListOf(y.drop(y.indexOf(h) + 1)))
+ }
+ }
+ }
+
+} \ No newline at end of file
diff --git a/test/files/neg/t750.check b/test/files/neg/t750.check
new file mode 100644
index 0000000000..c17ca334e6
--- /dev/null
+++ b/test/files/neg/t750.check
@@ -0,0 +1,15 @@
+Test_2.scala:4: error: type mismatch;
+ found : Array[Int]
+ required: Array[? with Object]
+Note: Int >: ? with Object, but class Array is invariant in type T.
+You may wish to investigate a wildcard type such as `_ >: ? with Object`. (SLS 3.2.10)
+ AO_1.f(a)
+ ^
+Test_2.scala:5: error: type mismatch;
+ found : Array[Int]
+ required: Array[Int]
+Note: Int >: Int, but class Array is invariant in type T.
+You may wish to investigate a wildcard type such as `_ >: Int`. (SLS 3.2.10)
+ AO_1.f[Int](a)
+ ^
+two errors found
diff --git a/test/files/neg/t750/AO_1.java b/test/files/neg/t750/AO_1.java
new file mode 100644
index 0000000000..4c7360ec6f
--- /dev/null
+++ b/test/files/neg/t750/AO_1.java
@@ -0,0 +1,5 @@
+public class AO_1 {
+ public static <T> void f(T[] ar0) {
+ System.out.println(ar0);
+ }
+} \ No newline at end of file
diff --git a/test/files/neg/t750/Test_2.scala b/test/files/neg/t750/Test_2.scala
new file mode 100644
index 0000000000..80977431c5
--- /dev/null
+++ b/test/files/neg/t750/Test_2.scala
@@ -0,0 +1,6 @@
+// t750
+object Test extends App {
+ val a = Array(1, 2, 3)
+ AO_1.f(a)
+ AO_1.f[Int](a)
+}
diff --git a/test/files/neg/t750b.check b/test/files/neg/t750b.check
new file mode 100644
index 0000000000..72a249191e
--- /dev/null
+++ b/test/files/neg/t750b.check
@@ -0,0 +1,15 @@
+Test.scala:4: error: type mismatch;
+ found : Array[Int]
+ required: Array[? with Object]
+Note: Int >: ? with Object, but class Array is invariant in type T.
+You may wish to investigate a wildcard type such as `_ >: ? with Object`. (SLS 3.2.10)
+ AO.f(a)
+ ^
+Test.scala:5: error: type mismatch;
+ found : Array[Int]
+ required: Array[Int]
+Note: Int >: Int, but class Array is invariant in type T.
+You may wish to investigate a wildcard type such as `_ >: Int`. (SLS 3.2.10)
+ AO.f[Int](a)
+ ^
+two errors found
diff --git a/test/files/neg/t750b/AO.java b/test/files/neg/t750b/AO.java
new file mode 100644
index 0000000000..060baf9a3c
--- /dev/null
+++ b/test/files/neg/t750b/AO.java
@@ -0,0 +1,5 @@
+public class AO {
+ public static <T> void f(T[] ar0) {
+ System.out.println(ar0);
+ }
+} \ No newline at end of file
diff --git a/test/files/neg/t750b/Test.scala b/test/files/neg/t750b/Test.scala
new file mode 100644
index 0000000000..5f792a7be8
--- /dev/null
+++ b/test/files/neg/t750b/Test.scala
@@ -0,0 +1,6 @@
+// t750
+object Test extends App {
+ val a = Array(1, 2, 3)
+ AO.f(a)
+ AO.f[Int](a)
+}
diff --git a/test/files/pos/gen-traversable-methods.scala b/test/files/pos/gen-traversable-methods.scala
new file mode 100644
index 0000000000..2604a09f11
--- /dev/null
+++ b/test/files/pos/gen-traversable-methods.scala
@@ -0,0 +1,20 @@
+
+
+
+import collection._
+
+
+
+object Test {
+
+ def main(args: Array[String]) {
+ val gen: GenTraversable[Int] = List(1, 2, 3)
+ gen.head
+ gen.headOption
+ gen.tail
+ gen.last
+ gen.lastOption
+ gen.init
+ }
+
+}
diff --git a/test/pending/neg/t2066.scala b/test/pending/neg/t2066.scala
new file mode 100644
index 0000000000..46177b19f7
--- /dev/null
+++ b/test/pending/neg/t2066.scala
@@ -0,0 +1,16 @@
+object Test extends App {
+ trait A {
+ def f[T[_]](x : T[Int]) : T[Any]
+ }
+
+ class B extends A {
+ def f[T[+_]](x : T[Int]) : T[Any] = x
+ }
+
+ class P[Y](var y : Y)
+
+ val p = new P(1)
+ val palias = (new B():A).f[P](p)
+ palias.y = "hello"
+ val z: Int = p.y
+} \ No newline at end of file
diff --git a/test/pending/pos/t5579.scala b/test/pending/pos/t5579.scala
new file mode 100644
index 0000000000..a1ee077fe7
--- /dev/null
+++ b/test/pending/pos/t5579.scala
@@ -0,0 +1,29 @@
+import language.existentials
+
+class Result[+A]
+
+case class Success[A](x: A) extends Result[A]
+
+class Apply[A]
+
+object Apply {
+ def apply[A](f: Int => Result[A]): Apply[A] = new Apply[A]
+}
+
+object TestUnit {
+ //Error is here:
+ def goo = Apply { i =>
+ i match {
+ case 1 => Success(Some(1))
+ case _ => Success(None)
+ }
+ }
+
+ //If type is defined explicitly (which I wanted from compiler to infer), then all is ok
+ def foo = Apply[t forSome { type t >: Some[Int] with None.type <: Option[Int] }] { i =>
+ i match {
+ case 1 => Success(Some(1))
+ case _ => Success(None)
+ }
+ }
+}
diff --git a/test/pending/pos/t5639/Bar.scala b/test/pending/pos/t5639/Bar.scala
new file mode 100644
index 0000000000..f577500acd
--- /dev/null
+++ b/test/pending/pos/t5639/Bar.scala
@@ -0,0 +1,7 @@
+package pack.age
+
+import pack.age.Implicits._
+
+object Quux {
+ def baz : Baz = 1
+}
diff --git a/test/pending/pos/t5639/Foo.scala b/test/pending/pos/t5639/Foo.scala
new file mode 100644
index 0000000000..6602150661
--- /dev/null
+++ b/test/pending/pos/t5639/Foo.scala
@@ -0,0 +1,7 @@
+package pack.age
+
+class Baz
+
+object Implicits {
+ implicit def Baz(n: Int): Baz = new Baz
+}
diff --git a/test/pending/pos/t5712.scala b/test/pending/pos/t5712.scala
new file mode 100644
index 0000000000..31f365028a
--- /dev/null
+++ b/test/pending/pos/t5712.scala
@@ -0,0 +1,14 @@
+import scala.tools.nsc._
+
+object Test {
+
+ // works
+ def mkReifier(global: Global)(typer: global.analyzer.Typer) = typer
+
+/*
+<console>:10: error: not found: value global
+ class Reifier(global: Global)(typer: global.analyzer.Typer) { }
+*/
+ class Reifier(global: Global)(typer: global.analyzer.Typer) { }
+
+}
diff --git a/test/pending/presentation/t5708.check b/test/pending/presentation/t5708.check
new file mode 100644
index 0000000000..9d944d6cfc
--- /dev/null
+++ b/test/pending/presentation/t5708.check
@@ -0,0 +1,81 @@
+reload: Completions.scala
+
+askTypeCompletion at Completions.scala(9,9)
+================================================================================
+[response] aksTypeCompletion at (9,9)
+retrieved 38 members
+[accessible: true] `method !=(x$1: Any)Boolean`
+[accessible: true] `method !=(x$1: AnyRef)Boolean`
+[accessible: true] `method ##()Int`
+[accessible: true] `method +(other: String)String`
+[accessible: true] `method ->[B](y: B)(test.Compat.type, B)`
+[accessible: true] `method ==(x$1: Any)Boolean`
+[accessible: true] `method ==(x$1: AnyRef)Boolean`
+[accessible: true] `method asInstanceOf[T0]=> T0`
+[accessible: true] `method ensuring(cond: Boolean)test.Compat.type`
+[accessible: true] `method ensuring(cond: Boolean, msg: => Any)test.Compat.type`
+[accessible: true] `method ensuring(cond: test.Compat.type => Boolean)test.Compat.type`
+[accessible: true] `method ensuring(cond: test.Compat.type => Boolean, msg: => Any)test.Compat.type`
+[accessible: true] `method eq(x$1: AnyRef)Boolean`
+[accessible: true] `method equals(x$1: Any)Boolean`
+[accessible: true] `method formatted(fmtstr: String)String`
+[accessible: true] `method hashCode()Int`
+[accessible: true] `method isInstanceOf[T0]=> Boolean`
+[accessible: true] `method ne(x$1: AnyRef)Boolean`
+[accessible: true] `method notify()Unit`
+[accessible: true] `method notifyAll()Unit`
+[accessible: true] `method synchronized[T0](x$1: T0)T0`
+[accessible: true] `method toString()String`
+[accessible: true] `method wait()Unit`
+[accessible: true] `method wait(x$1: Long)Unit`
+[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
+[accessible: true] `method x=> test.Compat.type`
+[accessible: true] `method →[B](y: B)(test.Compat.type, B)`
+[accessible: true] `lazy value fooInt`
+[accessible: false] `method clone()Object`
+[accessible: false] `method finalize()Unit`
+[accessible: true] `value CONST_STRINGString("constant")`
+[accessible: false] `value __leftOfArrowtest.Compat.type`
+[accessible: false] `value __resultOfEnsuringtest.Compat.type`
+[accessible: false] `value selfAny`
+================================================================================
+
+askTypeCompletion at Completions.scala(10,9)
+================================================================================
+[response] aksTypeCompletion at (10,9)
+retrieved 38 members
+[accessible: true] `method !=(x$1: Any)Boolean`
+[accessible: true] `method !=(x$1: AnyRef)Boolean`
+[accessible: true] `method ##()Int`
+[accessible: true] `method +(other: String)String`
+[accessible: true] `method ->[B](y: B)(test.Compat.type, B)`
+[accessible: true] `method ==(x$1: Any)Boolean`
+[accessible: true] `method ==(x$1: AnyRef)Boolean`
+[accessible: true] `method asInstanceOf[T0]=> T0`
+[accessible: true] `method ensuring(cond: Boolean)test.Compat.type`
+[accessible: true] `method ensuring(cond: Boolean, msg: => Any)test.Compat.type`
+[accessible: true] `method ensuring(cond: test.Compat.type => Boolean)test.Compat.type`
+[accessible: true] `method ensuring(cond: test.Compat.type => Boolean, msg: => Any)test.Compat.type`
+[accessible: true] `method eq(x$1: AnyRef)Boolean`
+[accessible: true] `method equals(x$1: Any)Boolean`
+[accessible: true] `method formatted(fmtstr: String)String`
+[accessible: true] `method hashCode()Int`
+[accessible: true] `method isInstanceOf[T0]=> Boolean`
+[accessible: true] `method ne(x$1: AnyRef)Boolean`
+[accessible: true] `method notify()Unit`
+[accessible: true] `method notifyAll()Unit`
+[accessible: true] `method synchronized[T0](x$1: T0)T0`
+[accessible: true] `method toString()String`
+[accessible: true] `method wait()Unit`
+[accessible: true] `method wait(x$1: Long)Unit`
+[accessible: true] `method wait(x$1: Long, x$2: Int)Unit`
+[accessible: true] `method x=> test.Compat.type`
+[accessible: true] `method →[B](y: B)(test.Compat.type, B)`
+[accessible: true] `lazy value fooInt`
+[accessible: false] `method clone()Object`
+[accessible: false] `method finalize()Unit`
+[accessible: true] `value CONST_STRINGString("constant")`
+[accessible: false] `value __leftOfArrowtest.Compat.type`
+[accessible: false] `value __resultOfEnsuringtest.Compat.type`
+[accessible: false] `value selfAny`
+================================================================================
diff --git a/test/pending/presentation/t5708/Test.scala b/test/pending/presentation/t5708/Test.scala
new file mode 100644
index 0000000000..96e758d974
--- /dev/null
+++ b/test/pending/presentation/t5708/Test.scala
@@ -0,0 +1,5 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+
+object Test extends InteractiveTest {
+
+} \ No newline at end of file
diff --git a/test/pending/presentation/t5708/src/Completions.scala b/test/pending/presentation/t5708/src/Completions.scala
new file mode 100644
index 0000000000..cc41492df7
--- /dev/null
+++ b/test/pending/presentation/t5708/src/Completions.scala
@@ -0,0 +1,11 @@
+package test
+
+object Compat {
+ final val CONST_STRING = "constant"
+ lazy val foo = 4
+}
+
+class Foo {
+ Compat./*!*/CONST_STRING // its 'accessible' flag is false
+ Compat./*!*/foo // its 'accessible' flag is false
+}
diff --git a/test/pending/run/t5695.check b/test/pending/run/t5695.check
new file mode 100644
index 0000000000..d50069ab4f
--- /dev/null
+++ b/test/pending/run/t5695.check
@@ -0,0 +1,2 @@
+..
+..
diff --git a/test/pending/run/t5695/part_1.scala b/test/pending/run/t5695/part_1.scala
new file mode 100644
index 0000000000..b8e8f8e52f
--- /dev/null
+++ b/test/pending/run/t5695/part_1.scala
@@ -0,0 +1,12 @@
+import language.experimental.macros
+import scala.reflect.makro.Context
+
+object Defs {
+
+ def mkInt = macro mkIntImpl
+ def mkIntImpl(c: Context): c.Expr[Any] = {
+ println(c.enclosingApplication)
+ c.reify{ 23 }
+ }
+
+}
diff --git a/test/pending/run/t5695/part_2.scala b/test/pending/run/t5695/part_2.scala
new file mode 100644
index 0000000000..d34219437d
--- /dev/null
+++ b/test/pending/run/t5695/part_2.scala
@@ -0,0 +1,8 @@
+import Defs._
+
+object Test extends App {
+
+ val i1 = mkInt
+ val i2 = identity(mkInt)
+
+}