summaryrefslogtreecommitdiff
path: root/test/pending
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending')
-rw-r--r--test/pending/pos/bug4704.scala36
-rw-r--r--test/pending/pos/existentials-harmful.scala54
-rw-r--r--test/pending/pos/inference.scala39
-rw-r--r--test/pending/pos/local-objects.scala9
-rw-r--r--test/pending/pos/nothing.scala24
-rw-r--r--test/pending/pos/package-case.scala4
-rw-r--r--test/pending/pos/t1380/gnujaxp.jar.desired.sha11
-rw-r--r--test/pending/pos/t1380/hallo.scala3
-rw-r--r--test/pending/pos/t1957.scala38
-rw-r--r--test/pending/pos/t1987/a.scala7
-rw-r--r--test/pending/pos/t1987/b.scala10
-rw-r--r--test/pending/pos/t2194.scala8
-rw-r--r--test/pending/pos/t4012.scala7
-rw-r--r--test/pending/pos/t4123.scala14
-rw-r--r--test/pending/pos/t4436.scala3
-rw-r--r--test/pending/pos/t4541.scala10
-rw-r--r--test/pending/pos/t4717.scala7
-rw-r--r--test/pending/pos/t4786.scala24
-rw-r--r--test/pending/pos/t4787.scala4
-rw-r--r--test/pending/pos/t4790.scala4
-rw-r--r--test/pending/pos/t5259.scala14
-rw-r--r--test/pending/pos/t5399.scala15
-rw-r--r--test/pending/pos/t5400.scala14
-rw-r--r--test/pending/pos/those-kinds-are-high.scala18
-rw-r--r--test/pending/run/bug4704run.scala10
-rw-r--r--test/pending/run/macro-overload.check4
-rw-r--r--test/pending/run/macro-overload.flags1
-rw-r--r--test/pending/run/macro-overload/Macros_1.scala9
-rw-r--r--test/pending/run/macro-overload/Test_2.scala6
-rw-r--r--test/pending/run/reify_addressbook.scala3
-rw-r--r--test/pending/run/reify_brainf_ck.scala3
-rw-r--r--test/pending/run/reify_callccinterpreter.scala3
-rw-r--r--test/pending/run/reify_classfileann_b.check (renamed from test/pending/run/t5229_1.check)0
-rw-r--r--test/pending/run/reify_classfileann_b.scala24
-rw-r--r--test/pending/run/reify_closure2b.scala7
-rw-r--r--test/pending/run/reify_closure3b.scala7
-rw-r--r--test/pending/run/reify_closure4b.scala7
-rw-r--r--test/pending/run/reify_closure5b.scala7
-rw-r--r--test/pending/run/reify_closure8b.scala3
-rw-r--r--test/pending/run/reify_closure9a.scala3
-rw-r--r--test/pending/run/reify_closure9b.scala3
-rw-r--r--test/pending/run/reify_closures11.scala3
-rw-r--r--test/pending/run/reify_csv.scala3
-rw-r--r--test/pending/run/reify_fors.check5
-rw-r--r--test/pending/run/reify_fors.scala107
-rw-r--r--test/pending/run/reify_gadts.scala3
-rw-r--r--test/pending/run/reify_lazyevaluation.scala3
-rw-r--r--test/pending/run/reify_maps.check4
-rw-r--r--test/pending/run/reify_maps.scala26
-rw-r--r--test/pending/run/reify_properties.scala3
-rw-r--r--test/pending/run/reify_simpleinterpreter.scala3
-rw-r--r--test/pending/run/reify_timeofday.check1
-rw-r--r--test/pending/run/reify_timeofday.scala48
-rw-r--r--test/pending/run/t3702.scala10
-rw-r--r--test/pending/run/t3705.scala17
-rw-r--r--test/pending/run/t3832.scala7
-rw-r--r--test/pending/run/t4098.scala9
-rw-r--r--test/pending/run/t4415.scala86
-rw-r--r--test/pending/run/t4460.scala12
-rw-r--r--test/pending/run/t4511.scala10
-rw-r--r--test/pending/run/t4511b.scala25
-rw-r--r--test/pending/run/t4971.scala16
-rw-r--r--test/pending/run/t4996.scala15
-rw-r--r--test/pending/run/t5224.check9
-rw-r--r--test/pending/run/t5224.scala8
-rw-r--r--test/pending/run/t5225_1.check4
-rw-r--r--test/pending/run/t5225_1.scala8
-rw-r--r--test/pending/run/t5225_2.check4
-rw-r--r--test/pending/run/t5225_2.scala8
-rw-r--r--test/pending/run/t5229_1.scala14
-rw-r--r--test/pending/run/t5229_1_nolift.scala1
-rw-r--r--test/pending/run/t5229_2.check2
-rw-r--r--test/pending/run/t5229_2.scala19
-rw-r--r--test/pending/run/t5258b.scala3
-rw-r--r--test/pending/run/t5258c.scala3
-rw-r--r--test/pending/run/t5270.check1
-rw-r--r--test/pending/run/t5270.scala26
-rw-r--r--test/pending/run/t5271_1.scala3
-rw-r--r--test/pending/run/t5271_2.scala3
-rw-r--r--test/pending/run/t5271_3.check1
-rw-r--r--test/pending/run/t5271_3.scala (renamed from test/pending/run/t5276.scala)9
-rw-r--r--test/pending/run/t5272.check1
-rw-r--r--test/pending/run/t5272.scala17
-rw-r--r--test/pending/run/t5273_1.check1
-rw-r--r--test/pending/run/t5273_1.scala16
-rw-r--r--test/pending/run/t5273_2.check1
-rw-r--r--test/pending/run/t5273_2.scala17
-rw-r--r--test/pending/run/t5276.check1
-rw-r--r--test/pending/run/t5284.scala14
-rw-r--r--test/pending/run/t5334_1.scala15
-rw-r--r--test/pending/run/t5334_2.scala15
-rw-r--r--test/pending/run/t5418.scala3
92 files changed, 542 insertions, 568 deletions
diff --git a/test/pending/pos/bug4704.scala b/test/pending/pos/bug4704.scala
new file mode 100644
index 0000000000..6af719adf7
--- /dev/null
+++ b/test/pending/pos/bug4704.scala
@@ -0,0 +1,36 @@
+trait Bar {
+ def f1 = super.hashCode
+ def f2 = super[Object].hashCode
+ def f3 = super[ScalaObject].hashCode
+
+ override def hashCode = 1
+}
+trait Barzoo {
+ def g1 = super.hashCode
+ def g2 = super[Object].hashCode
+ def g3 = super[ScalaObject].hashCode
+
+ override def hashCode = 2
+}
+
+trait Foo extends Bar with Barzoo {
+ def f4 = super.hashCode
+ def f5 = super[Object].hashCode
+ def f6 = super[ScalaObject].hashCode
+ def f6b = super[Bar].hashCode
+ def g4 = super[Barzoo].hashCode
+
+ override def hashCode = super[Bar].hashCode + super[Barzoo].hashCode
+}
+
+class Quux extends Foo {
+ override def hashCode = super.hashCode + super[Object].hashCode + super[ScalaObject].hashCode + super[Foo].hashCode
+}
+
+trait Borp extends Quux {
+ def f12 = super.hashCode
+ def f14 = super[ScalaObject].hashCode
+ def f15 = super[Quux].hashCode
+ override def hashCode = super[Quux].hashCode
+}
+
diff --git a/test/pending/pos/existentials-harmful.scala b/test/pending/pos/existentials-harmful.scala
deleted file mode 100644
index 8722852e8a..0000000000
--- a/test/pending/pos/existentials-harmful.scala
+++ /dev/null
@@ -1,54 +0,0 @@
-// a.scala
-// Mon Jul 11 14:18:26 PDT 2011
-
-object ExistentialsConsideredHarmful {
- class Animal(val name: String)
- object Dog extends Animal("Dog")
- object Sheep extends Animal("Sheep")
-
- trait Tools[A] {
- def shave(a: A): A
- }
- def tools[A](a: A): Tools[A] = null // dummy
-
- case class TransportBox[A <: Animal](animal: A, tools: Tools[A]) {
- def label: String = animal.name
- }
-
- // 1.
- def carry[A <: Animal](box: TransportBox[A]): Unit = {
- println(box.animal.name+" got carried away")
- }
-
- val aBox =
- if (math.random < 0.5)
- TransportBox(Dog, tools(Dog))
- else
- TransportBox(Sheep, tools(Sheep))
-
- // 2.
- //aBox.tools.shave(aBox.animal)
-
- // Use pattern match to avoid opening the existential twice
- aBox match {
- case TransportBox(animal, tools) => tools.shave(animal)
- }
-
- abstract class BoxCarrier[R <: Animal](box: TransportBox[R]) {
- def speed: Int
-
- def talkToAnimal: Unit = println("The carrier says hello to"+box.animal.name)
- }
-
- // 3.
- //val bc = new BoxCarrier(aBox) {
-
- // Use pattern match to avoid opening the existential twice
- // Type annotation on bc is required ... possible compiler bug?
- // val bc : BoxCarrier[_ <: Animal] = aBox match {
- val bc = aBox match {
- case tb : TransportBox[a] => new BoxCarrier(tb) {
- def speed: Int = 12
- }
- }
-}
diff --git a/test/pending/pos/inference.scala b/test/pending/pos/inference.scala
new file mode 100644
index 0000000000..d28d003435
--- /dev/null
+++ b/test/pending/pos/inference.scala
@@ -0,0 +1,39 @@
+// inference illuminator
+object Test {
+ class D1[T1 : Manifest, T2 <: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) }
+ class D2[T1 : Manifest, T2 >: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) }
+ class D3[+T1 : Manifest, T2 <: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) }
+ class D4[-T1 : Manifest, T2 >: T1 : Manifest](x: T1) { println(manifest[(T1, T2)]) }
+
+ class E1[T1 : Manifest, T2 <: T1 : Manifest](x: D1[T1, T2]) { println(manifest[(T1, T2)]) }
+ class E2[T1 : Manifest, T2 >: T1 : Manifest](x: D2[T1, T2]) { println(manifest[(T1, T2)]) }
+ class E3[+T1 : Manifest, T2 <: T1 : Manifest](x: D3[T1, T2]) { println(manifest[(T1, T2)]) }
+ class E4[-T1 : Manifest, T2 >: T1 : Manifest](x: D4[T1, T2]) { println(manifest[(T1, T2)]) }
+
+ def main(args: Array[String]): Unit = {
+ // WHY YOU NO LIKE NOTHING SO MUCH SCALAC?
+ val d1 = new D1(5)
+ val d2 = new D2(5)
+ val d3 = new D3(5)
+ val d4 = new D4(5)
+
+ new E1(d1) // fails
+ new E2(d2)
+ new E3(d3) // fails
+ new E4(d4)
+ }
+ // found : Test.D1[Int,Nothing]
+ // required: Test.D1[Int,T2]
+ // Note: Nothing <: T2, but class D1 is invariant in type T2.
+ // You may wish to define T2 as +T2 instead. (SLS 4.5)
+ // new E1(d1)
+ // ^
+ // test/pending/pos/inference.scala:22: error: type mismatch;
+ // found : Test.D3[Int,Nothing]
+ // required: Test.D3[Int,T2]
+ // Note: Nothing <: T2, but class D3 is invariant in type T2.
+ // You may wish to define T2 as +T2 instead. (SLS 4.5)
+ // new E3(d3)
+ // ^
+ // two errors found
+}
diff --git a/test/pending/pos/local-objects.scala b/test/pending/pos/local-objects.scala
deleted file mode 100644
index ed7c50ead9..0000000000
--- a/test/pending/pos/local-objects.scala
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-object Main {
- val x = {
- object Boo
- Boo
- }
-}
-
diff --git a/test/pending/pos/nothing.scala b/test/pending/pos/nothing.scala
new file mode 100644
index 0000000000..f76017fb16
--- /dev/null
+++ b/test/pending/pos/nothing.scala
@@ -0,0 +1,24 @@
+// More shoddy treatment for nothing.
+class A {
+ class Q3A[+T1, T2 <: T1](x: T1)
+ class Q3B[+T1, T2 <: T1](x: Q3A[T1, T2])
+
+ val x1 = new Q3B(new Q3A("a"))
+ val x2 = new Q3B(new Q3A[String, Nothing]("a"))
+ val x3 = new Q3B(new Q3A[String, Null]("a"))
+ // test/pending/pos/nothing.scala:5: error: type mismatch;
+ // found : A.this.Q3A[String,Nothing]
+ // required: A.this.Q3A[String,T2]
+ // Note: Nothing <: T2, but class Q3A is invariant in type T2.
+ // You may wish to define T2 as +T2 instead. (SLS 4.5)
+ // val x1 = new Q3B(new Q3A("a"))
+ // ^
+ // test/pending/pos/nothing.scala:6: error: type mismatch;
+ // found : A.this.Q3A[String,Nothing]
+ // required: A.this.Q3A[String,T2]
+ // Note: Nothing <: T2, but class Q3A is invariant in type T2.
+ // You may wish to define T2 as +T2 instead. (SLS 4.5)
+ // val x2 = new Q3B(new Q3A[String, Nothing]("a"))
+ // ^
+ // two errors found
+}
diff --git a/test/pending/pos/package-case.scala b/test/pending/pos/package-case.scala
deleted file mode 100644
index 906f1eb3f2..0000000000
--- a/test/pending/pos/package-case.scala
+++ /dev/null
@@ -1,4 +0,0 @@
-// a.scala
-// Sat Jul 16 00:34:36 EDT 2011
-
-package object io { case class TextReader() }
diff --git a/test/pending/pos/t1380/gnujaxp.jar.desired.sha1 b/test/pending/pos/t1380/gnujaxp.jar.desired.sha1
deleted file mode 100644
index c155c2aaa2..0000000000
--- a/test/pending/pos/t1380/gnujaxp.jar.desired.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ee000286d00c5209d5644462c1cfea87fc8b1342 ?gnujaxp.jar
diff --git a/test/pending/pos/t1380/hallo.scala b/test/pending/pos/t1380/hallo.scala
deleted file mode 100644
index bb8fff2333..0000000000
--- a/test/pending/pos/t1380/hallo.scala
+++ /dev/null
@@ -1,3 +0,0 @@
-object hallo {
- def main(args:Array[String]) = println("hallo")
-}
diff --git a/test/pending/pos/t1957.scala b/test/pending/pos/t1957.scala
deleted file mode 100644
index f80cf730ed..0000000000
--- a/test/pending/pos/t1957.scala
+++ /dev/null
@@ -1,38 +0,0 @@
-object Test {
- abstract class Settings {}
-
- abstract class Grist
- { self =>
- type settingsType <: Settings
- type moduleType <: Module {type settingsType = self.settingsType}
- val module: moduleType
- }
-
- abstract class Tool
- { self =>
- type settingsType <: Settings
- type moduleType = Module { type settingsType = self.settingsType }
- type gristType = Grist { type moduleType <: self.moduleType; type settingsType <: self.settingsType }
-
- def inputGrist: List[gristType]
- }
-
- abstract class Module
- { self =>
- type settingsType <: Settings
- final type commonModuleType = Module {type settingsType = self.settingsType}
- type selfType >: self.type <: commonModuleType
-
- // BTW: if we use the commented out type declarations, the code compiles successfully
- // type gristType = Grist {type settingsType <: self.settingsType; type moduleType <: commonModuleType }
-
- val tools: List[Tool {type settingsType = self.settingsType}]
-
- protected def f: List[commonModuleType] =
- {
- val inputGrists = tools.flatMap(_.inputGrist) // val inputGrists: List[gristType] =
- inputGrists.map(_.module)
- }
-
- }
-}
diff --git a/test/pending/pos/t1987/a.scala b/test/pending/pos/t1987/a.scala
deleted file mode 100644
index ff27044b69..0000000000
--- a/test/pending/pos/t1987/a.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-package bug
-
-// goes with t1987b.scala
-package object packageb {
- def func(a: Int) = ()
- def func(a: String) = ()
-}
diff --git a/test/pending/pos/t1987/b.scala b/test/pending/pos/t1987/b.scala
deleted file mode 100644
index a469ca6ea8..0000000000
--- a/test/pending/pos/t1987/b.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-// compile with t1987a.scala
-
-package bug.packageb
-// Note that the overloading works if instead of being in the package we import it:
-// replace the above line with import bug.packageb._
-
-class Client {
- val x = func(1) // doesn't compile: type mismatch; found: Int(1) required: String
- val y = func("1") // compiles
-}
diff --git a/test/pending/pos/t2194.scala b/test/pending/pos/t2194.scala
deleted file mode 100644
index e87be509d1..0000000000
--- a/test/pending/pos/t2194.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-// tricky to do differently?
-class C
-
-object Test {
- def f = { object o extends C; o}
- val y: C = f
- val x = f
-}
diff --git a/test/pending/pos/t4012.scala b/test/pending/pos/t4012.scala
new file mode 100644
index 0000000000..9b8a1b0dbe
--- /dev/null
+++ b/test/pending/pos/t4012.scala
@@ -0,0 +1,7 @@
+trait C1[+A] {
+ def head: A = sys.error("")
+}
+trait C2[@specialized +A] extends C1[A] {
+ override def head: A = super.head
+}
+class C3 extends C2[Char] \ No newline at end of file
diff --git a/test/pending/pos/t4123.scala b/test/pending/pos/t4123.scala
new file mode 100644
index 0000000000..82ab16b4e4
--- /dev/null
+++ b/test/pending/pos/t4123.scala
@@ -0,0 +1,14 @@
+// /scala/trac/4123/a.scala
+// Sun Feb 19 00:08:53 PST 2012
+
+trait Iter[@specialized(Byte) +A] extends Iterator[A] {
+ self =>
+
+ override def map[B](f: (A) => B) = super.map(f)
+}
+
+class ByteIter extends Iter[Byte] {
+ var i = 0
+ def hasNext = i < 3
+ def next = { i += 1 ; i.toByte }
+} \ No newline at end of file
diff --git a/test/pending/pos/t4436.scala b/test/pending/pos/t4436.scala
new file mode 100644
index 0000000000..acbf0beae6
--- /dev/null
+++ b/test/pending/pos/t4436.scala
@@ -0,0 +1,3 @@
+trait Chunk[@specialized +A] {
+ def bippy[@specialized B >: A](e: B): Chunk[B]
+} \ No newline at end of file
diff --git a/test/pending/pos/t4541.scala b/test/pending/pos/t4541.scala
new file mode 100644
index 0000000000..c6d9672cc5
--- /dev/null
+++ b/test/pending/pos/t4541.scala
@@ -0,0 +1,10 @@
+@SerialVersionUID(1L)
+final class SparseArray[@specialized T](private var data : Array[T]) extends Serializable {
+ def use(inData : Array[T]) = {
+ data = inData;
+ }
+
+ def set(that : SparseArray[T]) = {
+ use(that.data.clone)
+ }
+} \ No newline at end of file
diff --git a/test/pending/pos/t4717.scala b/test/pending/pos/t4717.scala
new file mode 100644
index 0000000000..43cf412bc6
--- /dev/null
+++ b/test/pending/pos/t4717.scala
@@ -0,0 +1,7 @@
+trait Bug1[@specialized +A] extends TraversableOnce[A] {
+ def ++[B >: A](that: TraversableOnce[B]): Iterator[B] = new Iterator[B] {
+ lazy val it = that.toIterator
+ def hasNext = it.hasNext
+ def next = it.next
+ }
+} \ No newline at end of file
diff --git a/test/pending/pos/t4786.scala b/test/pending/pos/t4786.scala
new file mode 100644
index 0000000000..f0579142b8
--- /dev/null
+++ b/test/pending/pos/t4786.scala
@@ -0,0 +1,24 @@
+trait Matrix[@specialized A, Repr[C] <: Matrix[C, Repr]] { // crash goes away if @specialize is removed
+ def duplicate(mb: MatrixBuilder[A, Repr]): Repr[A] = {
+ mb.zeros
+ }
+}
+trait DenseMatrix[@specialized A] extends Matrix[A, DenseMatrix]
+trait DenseMatrixFlt extends DenseMatrix[Float]
+
+trait MatrixBuilder[@specialized A, Repr[C] <: Matrix[C, Repr]] {
+ def zeros: Repr[A]
+}
+object DenseFloatBuilder extends MatrixBuilder[Float, DenseMatrix] {
+ val zeros = new Object with DenseMatrixFlt
+ // Note:
+ // - in 2.9 crash goes away if the explicit type "DenseMatrixFlt" is assigned to "zeros"
+ // - in 2.9 crash goes away if DenseMatrixFlt is a class instead of a trait:
+ // val zeros = new DenseMatrixFlt
+}
+
+object Test extends App {
+ val m1 = DenseFloatBuilder.zeros // in 2.9 crash goes away if explicit type "DenseMatrixFlt" is assigned to m1
+ val m2 = m1.duplicate(DenseFloatBuilder)
+}
+
diff --git a/test/pending/pos/t4787.scala b/test/pending/pos/t4787.scala
new file mode 100644
index 0000000000..cf3fe93c50
--- /dev/null
+++ b/test/pending/pos/t4787.scala
@@ -0,0 +1,4 @@
+trait MatrixImpl[@specialized A, @specialized B] {
+ def mapTo[ A2, B2, That <: MatrixImpl[A2, B2]](that: That)(f: A => A2) {
+ }
+}
diff --git a/test/pending/pos/t4790.scala b/test/pending/pos/t4790.scala
new file mode 100644
index 0000000000..e451fe80ab
--- /dev/null
+++ b/test/pending/pos/t4790.scala
@@ -0,0 +1,4 @@
+package spectest {
+ class Sp[@specialized A, B](val a: A, val b: B) { }
+ class Fsp[@specialized A, B](a: A, b: B) extends Sp(a,b) { def ab = (a,b) }
+}
diff --git a/test/pending/pos/t5259.scala b/test/pending/pos/t5259.scala
new file mode 100644
index 0000000000..317e28a9dc
--- /dev/null
+++ b/test/pending/pos/t5259.scala
@@ -0,0 +1,14 @@
+object DefaultArgBogusTypeMismatch {
+
+ class A[T]
+ class B {
+ type T = this.type
+ def m(implicit a : A[T] = new A[T]) = a
+ }
+
+ def newB = new B
+ val a1 = newB.m // Bogus type mismatch
+
+ val stableB = new B
+ val a2 = stableB.m // OK
+}
diff --git a/test/pending/pos/t5399.scala b/test/pending/pos/t5399.scala
new file mode 100644
index 0000000000..d8c1d5e51c
--- /dev/null
+++ b/test/pending/pos/t5399.scala
@@ -0,0 +1,15 @@
+class Test {
+ type AnyCyclic = Execute[Task]#CyclicException[_]
+
+ trait Task[T]
+
+ trait Execute[A[_] <: AnyRef] {
+ class CyclicException[T](val caller: A[T], val target: A[T])
+ }
+
+ def convertCyclic(c: AnyCyclic): String =
+ (c.caller, c.target) match {
+ case (caller: Task[_], target: Task[_]) => "bazinga!"
+ }
+}
+
diff --git a/test/pending/pos/t5400.scala b/test/pending/pos/t5400.scala
new file mode 100644
index 0000000000..cb4be4bde5
--- /dev/null
+++ b/test/pending/pos/t5400.scala
@@ -0,0 +1,14 @@
+trait TFn1B {
+ type In
+ type Out
+ type Apply[T <: In] <: Out
+}
+
+trait TFn1[I, O] extends TFn1B {
+ type In = I
+ type Out = O
+}
+
+trait >>[F1 <: TFn1[_, _], F2 <: TFn1[_, _]] extends TFn1[F1#In, F2#Out] {
+ type Apply[T] = F2#Apply[F1#Apply[T]]
+}
diff --git a/test/pending/pos/those-kinds-are-high.scala b/test/pending/pos/those-kinds-are-high.scala
index 3012e72d7e..434e64cefb 100644
--- a/test/pending/pos/those-kinds-are-high.scala
+++ b/test/pending/pos/those-kinds-are-high.scala
@@ -27,11 +27,27 @@ class A {
//
// List[Container[String] with Template[Container[Any] with Template[Container[Any] with Template[Any]]]
//
+ // *** Update 2/24/2012
+ //
+ // Hey, now there are polytypes in the inferred type.
+ // Not sure if that is progress or regress.
+ //
+ // test/pending/pos/those-kinds-are-high.scala:36: error: type mismatch;
+ // found : C1[String]
+ // required: ScalaObject with Container[String] with Template[ScalaObject with Container with Template[ScalaObject with Container with Template[[X]Container[X]]]]
+ // def fFail = List(new C1[String], new C2[String])
+ // ^
+ // test/pending/pos/those-kinds-are-high.scala:36: error: type mismatch;
+ // found : C2[String]
+ // required: ScalaObject with Container[String] with Template[ScalaObject with Container with Template[ScalaObject with Container with Template[[X]Container[X]]]]
+ // def fFail = List(new C1[String], new C2[String])
+ // ^
+ // two errors found
/** Working version explicitly typed.
*/
def fExplicit = List[Template[Container] with Container[String]](new C1[String], new C2[String])
// nope
- // def fFail = List(new C1[String], new C2[String])
+ def fFail = List(new C1[String], new C2[String])
}
diff --git a/test/pending/run/bug4704run.scala b/test/pending/run/bug4704run.scala
new file mode 100644
index 0000000000..af488a56c7
--- /dev/null
+++ b/test/pending/run/bug4704run.scala
@@ -0,0 +1,10 @@
+trait MM {
+ protected def method = "bip"
+}
+trait NN {
+ protected def method = "bop"
+}
+trait OOOOO extends MM with NN {
+ override protected def method = super[MM].method + super[NN].method
+ override def hashCode = super[MM].hashCode + super[NN].hashCode
+}
diff --git a/test/pending/run/macro-overload.check b/test/pending/run/macro-overload.check
new file mode 100644
index 0000000000..764f914e48
--- /dev/null
+++ b/test/pending/run/macro-overload.check
@@ -0,0 +1,4 @@
+object-Int
+object-String
+class-Int
+class-String \ No newline at end of file
diff --git a/test/pending/run/macro-overload.flags b/test/pending/run/macro-overload.flags
new file mode 100644
index 0000000000..7fea2ff901
--- /dev/null
+++ b/test/pending/run/macro-overload.flags
@@ -0,0 +1 @@
+-Xmacros \ No newline at end of file
diff --git a/test/pending/run/macro-overload/Macros_1.scala b/test/pending/run/macro-overload/Macros_1.scala
new file mode 100644
index 0000000000..f24c69ea7b
--- /dev/null
+++ b/test/pending/run/macro-overload/Macros_1.scala
@@ -0,0 +1,9 @@
+object Macros {
+ def macro bar(x: Int): Int = Apply(Select(Select(Ident("scala"), newTermName("Predef")), newTermName("println")), List(Literal(Constant("object-Int"))))
+ def macro bar(x: String): String = Apply(Select(Select(Ident("scala"), newTermName("Predef")), newTermName("println")), List(Literal(Constant("object-String"))))
+}
+
+class Macros {
+ def macro bar(x: Int): Int = Apply(Select(Select(Ident("scala"), newTermName("Predef")), newTermName("println")), List(Literal(Constant("class-Int"))))
+ def macro bar(x: String): String = Apply(Select(Select(Ident("scala"), newTermName("Predef")), newTermName("println")), List(Literal(Constant("class-String"))))
+} \ No newline at end of file
diff --git a/test/pending/run/macro-overload/Test_2.scala b/test/pending/run/macro-overload/Test_2.scala
new file mode 100644
index 0000000000..75f6572e03
--- /dev/null
+++ b/test/pending/run/macro-overload/Test_2.scala
@@ -0,0 +1,6 @@
+object Test extends App {
+ Macros.bar(2)
+ Macros.bar("2")
+ new Macros.bar(2)
+ new Macros.bar("2")
+} \ No newline at end of file
diff --git a/test/pending/run/reify_addressbook.scala b/test/pending/run/reify_addressbook.scala
index 225f26b75e..54dd5545bd 100644
--- a/test/pending/run/reify_addressbook.scala
+++ b/test/pending/run/reify_addressbook.scala
@@ -66,6 +66,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_brainf_ck.scala b/test/pending/run/reify_brainf_ck.scala
index 3bfb76c9ea..0034644b81 100644
--- a/test/pending/run/reify_brainf_ck.scala
+++ b/test/pending/run/reify_brainf_ck.scala
@@ -80,6 +80,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_callccinterpreter.scala b/test/pending/run/reify_callccinterpreter.scala
index c10f4f0b4e..96ae9c5c17 100644
--- a/test/pending/run/reify_callccinterpreter.scala
+++ b/test/pending/run/reify_callccinterpreter.scala
@@ -89,6 +89,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/t5229_1.check b/test/pending/run/reify_classfileann_b.check
index e69de29bb2..e69de29bb2 100644
--- a/test/pending/run/t5229_1.check
+++ b/test/pending/run/reify_classfileann_b.check
diff --git a/test/pending/run/reify_classfileann_b.scala b/test/pending/run/reify_classfileann_b.scala
new file mode 100644
index 0000000000..c31826377a
--- /dev/null
+++ b/test/pending/run/reify_classfileann_b.scala
@@ -0,0 +1,24 @@
+import scala.reflect._
+import scala.reflect.api._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+class ann(bar: String, quux: Array[String] = Array(), baz: ann = null) extends ClassfileAnnotation
+
+object Test extends App {
+ // test 1: reify
+ val tree = scala.reflect.Code.lift{
+ class C {
+ def x: Int = {
+ 2: @ann(bar="1", quux=Array("2", "3"), baz = new ann(bar = "4"))
+ }
+ }
+ }.tree
+ println(tree.toString)
+
+ // test 2: import and compile
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ toolbox.runExpr(tree)
+} \ No newline at end of file
diff --git a/test/pending/run/reify_closure2b.scala b/test/pending/run/reify_closure2b.scala
index e9fb40bede..b9c0063290 100644
--- a/test/pending/run/reify_closure2b.scala
+++ b/test/pending/run/reify_closure2b.scala
@@ -5,15 +5,14 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
def foo(y: Int): Int => Int = {
class Foo(y: Int) {
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
x + y
- }
+ }}
}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(y).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(y).fun.tree)
dyn.asInstanceOf[Int => Int]
}
diff --git a/test/pending/run/reify_closure3b.scala b/test/pending/run/reify_closure3b.scala
index 5c4f3c81b9..8f161dbff3 100644
--- a/test/pending/run/reify_closure3b.scala
+++ b/test/pending/run/reify_closure3b.scala
@@ -7,15 +7,14 @@ object Test extends App {
class Foo(y: Int) {
def y1 = y
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
x + y1
- }
+ }}
}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(y).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(y).fun.tree)
dyn.asInstanceOf[Int => Int]
}
diff --git a/test/pending/run/reify_closure4b.scala b/test/pending/run/reify_closure4b.scala
index 24dfa9fe17..238795d4dd 100644
--- a/test/pending/run/reify_closure4b.scala
+++ b/test/pending/run/reify_closure4b.scala
@@ -7,15 +7,14 @@ object Test extends App {
class Foo(y: Int) {
val y1 = y
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
x + y1
- }
+ }}
}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(y).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(y).fun.tree)
dyn.asInstanceOf[Int => Int]
}
diff --git a/test/pending/run/reify_closure5b.scala b/test/pending/run/reify_closure5b.scala
index 02eb771f0c..bdb2583e8a 100644
--- a/test/pending/run/reify_closure5b.scala
+++ b/test/pending/run/reify_closure5b.scala
@@ -5,15 +5,14 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
def foo[T](ys: List[T]): Int => Int = {
class Foo[T](ys: List[T]) {
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
x + ys.length
- }
+ }}
}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(ys).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(ys).fun.tree)
dyn.asInstanceOf[Int => Int]
}
diff --git a/test/pending/run/reify_closure8b.scala b/test/pending/run/reify_closure8b.scala
index 9e37e4e09a..38031c217b 100644
--- a/test/pending/run/reify_closure8b.scala
+++ b/test/pending/run/reify_closure8b.scala
@@ -10,8 +10,7 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(10).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(10).fun.tree)
val foo = dyn.asInstanceOf[Int]
println(foo)
}
diff --git a/test/pending/run/reify_closure9a.scala b/test/pending/run/reify_closure9a.scala
index f3ee153d3c..185f4ffca1 100644
--- a/test/pending/run/reify_closure9a.scala
+++ b/test/pending/run/reify_closure9a.scala
@@ -11,8 +11,7 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(y).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(y).fun.tree)
dyn.asInstanceOf[Int]
}
diff --git a/test/pending/run/reify_closure9b.scala b/test/pending/run/reify_closure9b.scala
index 8d349e8701..ad279fac6d 100644
--- a/test/pending/run/reify_closure9b.scala
+++ b/test/pending/run/reify_closure9b.scala
@@ -11,8 +11,7 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(new Foo(y).fun.tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(new Foo(y).fun.tree)
dyn.asInstanceOf[Int]
}
diff --git a/test/pending/run/reify_closures11.scala b/test/pending/run/reify_closures11.scala
index 42053bd029..2c4177b8f2 100644
--- a/test/pending/run/reify_closures11.scala
+++ b/test/pending/run/reify_closures11.scala
@@ -11,8 +11,7 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(fun().tree)
- val dyn = toolbox.runExpr(ttree)
+ val dyn = toolbox.runExpr(fun().tree)
val foo = dyn.asInstanceOf[Int]
println(foo)
}
diff --git a/test/pending/run/reify_csv.scala b/test/pending/run/reify_csv.scala
index a05a3b55d4..a6a616fab0 100644
--- a/test/pending/run/reify_csv.scala
+++ b/test/pending/run/reify_csv.scala
@@ -37,6 +37,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_fors.check b/test/pending/run/reify_fors.check
deleted file mode 100644
index eefddedc20..0000000000
--- a/test/pending/run/reify_fors.check
+++ /dev/null
@@ -1,5 +0,0 @@
-Persons over 20: John Richard
-divisors(34) = List(1, 2, 17, 34)
-findNums(15) = (4,1) (5,2) (6,1) (7,4) (8,3) (8,5) (9,2) (9,4) (10,1) (10,3) (10,7) (11,2) (11,6) (11,8) (12,1) (12,5) (12,7) (13,4) (13,6) (13,10) (14,3) (14,5) (14,9)
-average(List(3.5, 5.0, 4.5)) = 4.333333333333333
-scalProd(List(3.5, 5.0, 4.5), List(2.0, 1.0, 3.0)) = 25.5
diff --git a/test/pending/run/reify_fors.scala b/test/pending/run/reify_fors.scala
deleted file mode 100644
index f3556514a9..0000000000
--- a/test/pending/run/reify_fors.scala
+++ /dev/null
@@ -1,107 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- object Persons {
- /** A list of persons. To create a list, we use Predef.List
- * which takes a variable number of arguments and constructs
- * a list out of them.
- */
- val persons = List(
- new Person("Bob", 17),
- new Person("John", 40),
- new Person("Richard", 68)
- )
-
- /** A Person class. 'val' constructor parameters become
- * public members of the class.
- */
- class Person(val name: String, val age: Int)
-
- /** Return an iterator over persons that are older than 20.
- */
- def olderThan20(xs: Seq[Person]): Iterator[String] =
- olderThan20(xs.elements)
-
- /** Return an iterator over persons older than 20, given
- * an iterator over persons.
- */
- def olderThan20(xs: Iterator[Person]): Iterator[String] = {
-
- // The first expression is called a 'generator' and makes
- // 'p' take values from 'xs'. The second expression is
- // called a 'filter' and it is a boolean expression which
- // selects only persons older than 20. There can be more than
- // one generator and filter. The 'yield' expression is evaluated
- // for each 'p' which satisfies the filters and used to assemble
- // the resulting iterator
- for (p <- xs if p.age > 20) yield p.name
- }
- }
-
- /** Some functions over lists of numbers which demonstrate
- * the use of for comprehensions.
- */
- object Numeric {
-
- /** Return the divisors of n. */
- def divisors(n: Int): List[Int] =
- for (i <- List.range(1, n+1) if n % i == 0) yield i
-
- /** Is 'n' a prime number? */
- def isPrime(n: Int) = divisors(n).length == 2
-
- /** Return pairs of numbers whose sum is prime. */
- def findNums(n: Int): Iterable[(Int, Int)] = {
-
- // a for comprehension using two generators
- for (i <- 1 until n;
- j <- 1 until (i-1);
- if isPrime(i + j)) yield (i, j)
- }
-
- /** Return the sum of the elements of 'xs'. */
- def sum(xs: List[Double]): Double =
- xs.foldLeft(0.0) { (x, y) => x + y }
-
- /** Return the sum of pairwise product of the two lists. */
- def scalProd(xs: List[Double], ys: List[Double]) =
- sum(for((x, y) <- xs zip ys) yield x * y);
-
- /** Remove duplicate elements in 'xs'. */
- def removeDuplicates[A](xs: List[A]): List[A] =
- if (xs.isEmpty)
- xs
- else
- xs.head :: removeDuplicates(for (x <- xs.tail if x != xs.head) yield x)
- }
-
- // import all members of object 'persons' in the current scope
- import Persons._
-
- print("Persons over 20:")
- olderThan20(persons) foreach { x => print(" " + x) }
- println
-
- import Numeric._
-
- println("divisors(34) = " + divisors(34))
-
- print("findNums(15) =")
- findNums(15) foreach { x => print(" " + x) }
- println
-
- val xs = List(3.5, 5.0, 4.5)
- println("average(" + xs + ") = " + sum(xs) / xs.length)
-
- val ys = List(2.0, 1.0, 3.0)
- println("scalProd(" + xs + ", " + ys +") = " + scalProd(xs, ys))
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/reify_gadts.scala b/test/pending/run/reify_gadts.scala
index 7077de735c..9feb7a5726 100644
--- a/test/pending/run/reify_gadts.scala
+++ b/test/pending/run/reify_gadts.scala
@@ -40,6 +40,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_lazyevaluation.scala b/test/pending/run/reify_lazyevaluation.scala
index f38af76751..0720a7c979 100644
--- a/test/pending/run/reify_lazyevaluation.scala
+++ b/test/pending/run/reify_lazyevaluation.scala
@@ -60,6 +60,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_maps.check b/test/pending/run/reify_maps.check
deleted file mode 100644
index 08cbbb1359..0000000000
--- a/test/pending/run/reify_maps.check
+++ /dev/null
@@ -1,4 +0,0 @@
-red has code: 16711680
-Unknown color: green
-Unknown color: blue
-turquoise has code: 65535
diff --git a/test/pending/run/reify_maps.scala b/test/pending/run/reify_maps.scala
deleted file mode 100644
index 589b28d049..0000000000
--- a/test/pending/run/reify_maps.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- val colors = Map("red" -> 0xFF0000,
- "turquoise" -> 0x00FFFF,
- "black" -> 0x000000,
- "orange" -> 0xFF8040,
- "brown" -> 0x804000)
- for (name <- List("red", "green", "blue", "turquoise")) println(
- colors.get(name) match {
- case Some(code) =>
- name + " has code: " + code
- case None =>
- "Unknown color: " + name
- }
- )
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/reify_properties.scala b/test/pending/run/reify_properties.scala
index 2115a96715..265c344b8e 100644
--- a/test/pending/run/reify_properties.scala
+++ b/test/pending/run/reify_properties.scala
@@ -58,6 +58,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_simpleinterpreter.scala b/test/pending/run/reify_simpleinterpreter.scala
index b39f5583bb..4762afb3cc 100644
--- a/test/pending/run/reify_simpleinterpreter.scala
+++ b/test/pending/run/reify_simpleinterpreter.scala
@@ -77,6 +77,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/reify_timeofday.check b/test/pending/run/reify_timeofday.check
deleted file mode 100644
index 3fd3b76a62..0000000000
--- a/test/pending/run/reify_timeofday.check
+++ /dev/null
@@ -1 +0,0 @@
-DateError
diff --git a/test/pending/run/reify_timeofday.scala b/test/pending/run/reify_timeofday.scala
deleted file mode 100644
index 6bd11b0d30..0000000000
--- a/test/pending/run/reify_timeofday.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- class DateError extends Exception
-
- /** Simulating properties in Scala
- * (example 4.2.1 in ScalaReference.pdf)
- */
- class TimeOfDayVar {
- private var h, m, s: Int = 0
-
- def hours = h
-
- /** A method 'ident_=' is a setter for 'ident'. 'code.ident = ...' will
- * be translated to a call to 'ident_='
- */
- def hours_= (h: Int) =
- if (0 <= h && h < 24) this.h = h
- else throw new DateError()
-
- def minutes = m
- def minutes_= (m: Int) =
- if (0 <= m && m < 60) this.m = m
- else throw new DateError()
-
- def seconds = s
- def seconds_= (s: Int) =
- if (0 <= s && s < 60) this.s = s
- else throw new DateError()
- }
-
- val d = new TimeOfDayVar
- d.hours = 8; d.minutes = 30; d.seconds = 0
- try { d.hours = 25 // throws a DateError exception
- } catch {
- case de: DateError => println("DateError")
- case e: Exception => println("Exception")
- }
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t3702.scala b/test/pending/run/t3702.scala
new file mode 100644
index 0000000000..e08fc12e76
--- /dev/null
+++ b/test/pending/run/t3702.scala
@@ -0,0 +1,10 @@
+object Test {
+ def main(args: Array[String]) {
+ foo(Nil, Nil)
+ }
+
+ def foo(h: Any, t: List[Any]) = h match {
+ case 5 :: _ => ()
+ case List(from) => List(from, from, from)
+ }
+}
diff --git a/test/pending/run/t3705.scala b/test/pending/run/t3705.scala
new file mode 100644
index 0000000000..fcc020f28c
--- /dev/null
+++ b/test/pending/run/t3705.scala
@@ -0,0 +1,17 @@
+// package foo
+
+import scala.xml._
+object Test {
+ def updateNodes(ns: Seq[Node]): Seq[Node] =
+ for(subnode <- ns) yield subnode match {
+ case <d>{_}</d> if true => <d>abc</d>
+ case Elem(prefix, label, attribs, scope, children @ _*) =>
+ Elem(prefix, label, attribs, scope, updateNodes(children) : _*)
+ case other => other
+ }
+ def main(args: Array[String]): Unit = {
+ updateNodes(<b />)
+
+ }
+}
+
diff --git a/test/pending/run/t3832.scala b/test/pending/run/t3832.scala
new file mode 100644
index 0000000000..f081d5b3af
--- /dev/null
+++ b/test/pending/run/t3832.scala
@@ -0,0 +1,7 @@
+class Test {
+ def this(un: Int) = {
+ this()
+ def test(xs: List[Int]) = xs map (x => x)
+ ()
+ }
+} \ No newline at end of file
diff --git a/test/pending/run/t4098.scala b/test/pending/run/t4098.scala
new file mode 100644
index 0000000000..b74ccf9bff
--- /dev/null
+++ b/test/pending/run/t4098.scala
@@ -0,0 +1,9 @@
+class A(a: Any) {
+ def this() = { this(b) ; def b = new {} }
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ new A ("")
+ }
+}
diff --git a/test/pending/run/t4415.scala b/test/pending/run/t4415.scala
new file mode 100644
index 0000000000..f96031d650
--- /dev/null
+++ b/test/pending/run/t4415.scala
@@ -0,0 +1,86 @@
+/**
+ * Demonstration of issue with Extractors. If lines 15/16 are not present, get at runtime:
+ *
+ * Exception in thread "main" java.lang.VerifyError: (class: ExtractorIssue$$, method: convert signature: (LTopProperty;)LMyProp;) Accessing value from uninitialized register 5
+ * at ExtractorIssue.main(ExtractorIssue.scala)
+ * at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)]
+ *
+ * If lines 15/16 are present, the compiler crashes:
+ *
+ * fatal error (server aborted): not enough arguments for method body%3: (val p: MyProp[java.lang.String])MyProp[_33].
+ * Unspecified value parameter p.
+ */
+object Test {
+
+ def main(args: Array[String]) {
+ convert(new SubclassProperty)
+ }
+
+ def convert(prop: TopProperty): MyProp[_] = {
+ prop match {
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ //case SubclassSecondMatch(p) => p // if these lines are present, the compiler crashes. If commented, unsafe byte
+ //case SecondMatch(p) => p // byte code is generated, which causes a java.lang.VerifyError at runtime
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ case SubclassMatch(p) => p
+ case StandardMatch(p) => p
+ }
+ }
+}
+
+class TopProperty
+
+class StandardProperty extends TopProperty
+class SubclassProperty extends StandardProperty
+
+class SecondProperty extends TopProperty
+class SubclassSecondProperty extends StandardProperty
+
+trait MyProp[T]
+case class MyPropImpl[T] extends MyProp[T]
+
+object SubclassMatch {
+
+ def unapply(prop: SubclassProperty) : Option[MyProp[String]] = {
+ Some(new MyPropImpl)
+ }
+
+ def apply(prop: MyProp[String]) : SubclassProperty = {
+ new SubclassProperty()
+ }
+}
+
+object StandardMatch {
+
+ def unapply(prop: StandardProperty) : Option[MyProp[String]] = {
+ Some(new MyPropImpl)
+ }
+
+ def apply(prop: MyProp[String]) : StandardProperty = {
+ new StandardProperty()
+ }
+}
+
+object SubclassSecondMatch {
+
+ def unapply(prop: SubclassSecondProperty) : Option[MyProp[BigInt]] = {
+ Some(new MyPropImpl)
+ }
+
+ def apply(prop: MyProp[String]) : SubclassSecondProperty = {
+ new SubclassSecondProperty()
+ }
+}
+
+object SecondMatch {
+
+ def unapply(prop: SecondProperty) : Option[MyProp[BigInt]] = {
+ Some(new MyPropImpl)
+ }
+
+ def apply(prop: MyProp[String]) : SecondProperty = {
+ new SecondProperty()
+ }
+} \ No newline at end of file
diff --git a/test/pending/run/t4460.scala b/test/pending/run/t4460.scala
new file mode 100644
index 0000000000..324e2f5bef
--- /dev/null
+++ b/test/pending/run/t4460.scala
@@ -0,0 +1,12 @@
+trait A
+
+class B(val x: Int) {
+ self: A =>
+
+ def this() = this()
+}
+
+object Test extends B(2) with A {
+ def main(args: Array[String]) { }
+}
+
diff --git a/test/pending/run/t4511.scala b/test/pending/run/t4511.scala
new file mode 100644
index 0000000000..58d4e0c7b0
--- /dev/null
+++ b/test/pending/run/t4511.scala
@@ -0,0 +1,10 @@
+class Interval[@specialized T](val high: T)
+class Node[@specialized T](val interval: Interval[T]) {
+ val x1 = Some(interval.high)
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ new Node(new Interval(5)).x1
+ }
+} \ No newline at end of file
diff --git a/test/pending/run/t4511b.scala b/test/pending/run/t4511b.scala
new file mode 100644
index 0000000000..3337fb3203
--- /dev/null
+++ b/test/pending/run/t4511b.scala
@@ -0,0 +1,25 @@
+import scala.{specialized => spec}
+
+class Interval[@spec(Int) T](high:T)
+
+class X1[@spec(Int) T](interval:Interval[T]) { val x = interval }
+class Y1[@spec(Int) T](interval:Interval[T]) { val y = Some(interval) }
+
+class X2[T](val interval:Interval[T]) { val x = interval }
+class Y2[T](val interval:Interval[T]) { val y = Some(interval) }
+
+class X3[@spec(Int) T](val interval:Interval[T]) { val x = interval }
+class Y3[@spec(Int) T](val interval:Interval[T]) { val y = Some(interval) }
+
+object Test {
+ def tryit(o: => Any) = println(try { "ok: " + o.getClass.getName } catch { case e => "FAIL: " + e + "\n" + e.getStackTrace.mkString("\n ") })
+
+ def main(args: Array[String]) {
+ tryit(new X1(new Interval(3)))
+ tryit(new X2(new Interval(3)))
+ tryit(new X3(new Interval(3)))
+ tryit(new Y1(new Interval(3)))
+ tryit(new Y2(new Interval(3)))
+ tryit(new Y3(new Interval(3)))
+ }
+}
diff --git a/test/pending/run/t4971.scala b/test/pending/run/t4971.scala
new file mode 100644
index 0000000000..c9b6d6f39f
--- /dev/null
+++ b/test/pending/run/t4971.scala
@@ -0,0 +1,16 @@
+trait A[@specialized(Int) K, @specialized(Double) V] {
+ def doStuff(k: K, v: V): Unit = sys.error("I am overridden, you cannot call me")
+}
+
+trait B[@specialized(Double) V] extends A[Int, V] {
+ override def doStuff(k: Int, v: V): Unit = println("Hi - I'm calling doStuff in B")
+}
+
+object Test {
+ def main(args: Array[String]): Unit = delegate(new B[Double]() {}, 1, 0.1)
+
+ def delegate[@specialized(Int) K, @specialized(Double) V](a: A[K, V], k: K, v: V) {
+ a.doStuff(k, v)
+ }
+}
+
diff --git a/test/pending/run/t4996.scala b/test/pending/run/t4996.scala
new file mode 100644
index 0000000000..58a8fe16a3
--- /dev/null
+++ b/test/pending/run/t4996.scala
@@ -0,0 +1,15 @@
+object SpecializationAbstractOverride {
+
+ trait A[@specialized(Int) T] { def foo(t: T) }
+ trait B extends A[Int] { def foo(t: Int) { println("B.foo") } }
+ trait M extends B { abstract override def foo(t: Int) { super.foo(t) ; println ("M.foo") } }
+ object C extends B with M
+
+ object D extends B { override def foo(t: Int) { super.foo(t); println("M.foo") } }
+
+ def main(args: Array[String]) {
+ D.foo(42) // OK, prints B.foo M.foo
+ C.foo(42) // StackOverflowError
+ }
+}
+
diff --git a/test/pending/run/t5224.check b/test/pending/run/t5224.check
deleted file mode 100644
index 2b920773c0..0000000000
--- a/test/pending/run/t5224.check
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- @serializable class C extends Object with ScalaObject {
- def <init>() = {
- super.<init>();
- ()
- }
- };
- ()
-} \ No newline at end of file
diff --git a/test/pending/run/t5224.scala b/test/pending/run/t5224.scala
deleted file mode 100644
index 865ce4bfe9..0000000000
--- a/test/pending/run/t5224.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import scala.reflect._
-import scala.reflect.api._
-
-object Test extends App {
- println(scala.reflect.Code.lift{
- @serializable class C
- }.tree.toString)
-} \ No newline at end of file
diff --git a/test/pending/run/t5225_1.check b/test/pending/run/t5225_1.check
deleted file mode 100644
index b29cd9c365..0000000000
--- a/test/pending/run/t5225_1.check
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- @transient @volatile var x: Int = 2;
- ()
-} \ No newline at end of file
diff --git a/test/pending/run/t5225_1.scala b/test/pending/run/t5225_1.scala
deleted file mode 100644
index 454502e810..0000000000
--- a/test/pending/run/t5225_1.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import scala.reflect._
-import scala.reflect.api._
-
-object Test extends App {
- println(scala.reflect.Code.lift{
- @transient @volatile var x = 2
- }.tree.toString)
-} \ No newline at end of file
diff --git a/test/pending/run/t5225_2.check b/test/pending/run/t5225_2.check
deleted file mode 100644
index 88972fd27f..0000000000
--- a/test/pending/run/t5225_2.check
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- def foo(@cloneable x: Int): String = "";
- ()
-}
diff --git a/test/pending/run/t5225_2.scala b/test/pending/run/t5225_2.scala
deleted file mode 100644
index 82bad0f353..0000000000
--- a/test/pending/run/t5225_2.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import scala.reflect._
-import scala.reflect.api._
-
-object Test extends App {
- println(scala.reflect.Code.lift{
- def foo(@cloneable x: Int) = ""
- }.tree.toString)
-} \ No newline at end of file
diff --git a/test/pending/run/t5229_1.scala b/test/pending/run/t5229_1.scala
deleted file mode 100644
index 1d7bf0590b..0000000000
--- a/test/pending/run/t5229_1.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- object C
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5229_1_nolift.scala b/test/pending/run/t5229_1_nolift.scala
deleted file mode 100644
index 33855d2e4f..0000000000
--- a/test/pending/run/t5229_1_nolift.scala
+++ /dev/null
@@ -1 +0,0 @@
-object C
diff --git a/test/pending/run/t5229_2.check b/test/pending/run/t5229_2.check
deleted file mode 100644
index 5db6ec9b38..0000000000
--- a/test/pending/run/t5229_2.check
+++ /dev/null
@@ -1,2 +0,0 @@
-2
-evaluated = null
diff --git a/test/pending/run/t5229_2.scala b/test/pending/run/t5229_2.scala
deleted file mode 100644
index 67be7328a6..0000000000
--- a/test/pending/run/t5229_2.scala
+++ /dev/null
@@ -1,19 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- object C {
- val x = 2
- }
-
- println(C.x)
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- val evaluated = toolbox.runExpr(ttree)
- println("evaluated = " + evaluated)
-}
diff --git a/test/pending/run/t5258b.scala b/test/pending/run/t5258b.scala
index 70cb4a7f4e..3a603095b3 100644
--- a/test/pending/run/t5258b.scala
+++ b/test/pending/run/t5258b.scala
@@ -10,6 +10,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
} \ No newline at end of file
diff --git a/test/pending/run/t5258c.scala b/test/pending/run/t5258c.scala
index a93170d0d6..b0d16ba0b1 100644
--- a/test/pending/run/t5258c.scala
+++ b/test/pending/run/t5258c.scala
@@ -10,6 +10,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
} \ No newline at end of file
diff --git a/test/pending/run/t5270.check b/test/pending/run/t5270.check
deleted file mode 100644
index 08839f6bb2..0000000000
--- a/test/pending/run/t5270.check
+++ /dev/null
@@ -1 +0,0 @@
-200
diff --git a/test/pending/run/t5270.scala b/test/pending/run/t5270.scala
deleted file mode 100644
index 10f79790b0..0000000000
--- a/test/pending/run/t5270.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- class Y {
- def y = 100
- }
-
- trait Z { this: Y =>
- val z = 2 * y
- }
-
- class X extends Y with Z {
- def println() = Predef.println(z)
- }
-
- new X().println()
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5271_1.scala b/test/pending/run/t5271_1.scala
index 5f10e64528..afbd8fe465 100644
--- a/test/pending/run/t5271_1.scala
+++ b/test/pending/run/t5271_1.scala
@@ -9,6 +9,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/t5271_2.scala b/test/pending/run/t5271_2.scala
index 71967c04ed..d85d945973 100644
--- a/test/pending/run/t5271_2.scala
+++ b/test/pending/run/t5271_2.scala
@@ -11,6 +11,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/t5271_3.check b/test/pending/run/t5271_3.check
new file mode 100644
index 0000000000..f32a5804e2
--- /dev/null
+++ b/test/pending/run/t5271_3.check
@@ -0,0 +1 @@
+true \ No newline at end of file
diff --git a/test/pending/run/t5276.scala b/test/pending/run/t5271_3.scala
index 432fdb91e4..5a624de903 100644
--- a/test/pending/run/t5276.scala
+++ b/test/pending/run/t5271_3.scala
@@ -4,12 +4,13 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
val code = scala.reflect.Code.lift{
- lazy x = 2
- println(x)
+ object C { def qwe = 4 }
+ case class C(foo: Int, bar: Int)
+ val c = C(2, 2)
+ println(c.foo * c.bar == C.qwe)
};
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
}
diff --git a/test/pending/run/t5272.check b/test/pending/run/t5272.check
deleted file mode 100644
index dcf02b2fb6..0000000000
--- a/test/pending/run/t5272.check
+++ /dev/null
@@ -1 +0,0 @@
-okay
diff --git a/test/pending/run/t5272.scala b/test/pending/run/t5272.scala
deleted file mode 100644
index 3f44d05fb3..0000000000
--- a/test/pending/run/t5272.scala
+++ /dev/null
@@ -1,17 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- 2 match {
- case 2 => println("okay")
- case _ => println("not okay")
- }
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5273_1.check b/test/pending/run/t5273_1.check
deleted file mode 100644
index c551774ca5..0000000000
--- a/test/pending/run/t5273_1.check
+++ /dev/null
@@ -1 +0,0 @@
-name = American Dollar, shortname = USD, value = 2,8567
diff --git a/test/pending/run/t5273_1.scala b/test/pending/run/t5273_1.scala
deleted file mode 100644
index 8b75084463..0000000000
--- a/test/pending/run/t5273_1.scala
+++ /dev/null
@@ -1,16 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- val RegexParser = """(.*) \d+([A-Z]+) \| (.*) \|.*""".r
- val RegexParser(name, shortname, value) = "American Dollar 1USD | 2,8567 | sometext"
- println("name = %s, shortname = %s, value = %s".format(name, shortname, value))
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5273_2.check b/test/pending/run/t5273_2.check
deleted file mode 100644
index 0cfbf08886..0000000000
--- a/test/pending/run/t5273_2.check
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/test/pending/run/t5273_2.scala b/test/pending/run/t5273_2.scala
deleted file mode 100644
index 1175881c9f..0000000000
--- a/test/pending/run/t5273_2.scala
+++ /dev/null
@@ -1,17 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- List(1, 2, 3) match {
- case foo :: bar :: _ => println(foo * bar)
- case _ => println("this is getting out of hand!")
- }
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5276.check b/test/pending/run/t5276.check
deleted file mode 100644
index 0cfbf08886..0000000000
--- a/test/pending/run/t5276.check
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/test/pending/run/t5284.scala b/test/pending/run/t5284.scala
new file mode 100644
index 0000000000..b43afed5b8
--- /dev/null
+++ b/test/pending/run/t5284.scala
@@ -0,0 +1,14 @@
+object Test {
+ def main(args:Array[String]) {
+ val a = Blarg(Array(1,2,3))
+ println(a.m((x:Int) => x+1))
+ }
+}
+
+object Blarg {
+ def apply[T:Manifest](a:Array[T]) = new Blarg(a)
+}
+class Blarg [@specialized T:Manifest](val a:Array[T]) {
+ def m[@specialized W>:T,@specialized S](f:W=>S) = f(a(0))
+}
+
diff --git a/test/pending/run/t5334_1.scala b/test/pending/run/t5334_1.scala
deleted file mode 100644
index c1eba89c2b..0000000000
--- a/test/pending/run/t5334_1.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- class C
- new C
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5334_2.scala b/test/pending/run/t5334_2.scala
deleted file mode 100644
index 361b8c85f2..0000000000
--- a/test/pending/run/t5334_2.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-import scala.tools.nsc.reporters._
-import scala.tools.nsc.Settings
-import reflect.runtime.Mirror.ToolBox
-
-object Test extends App {
- val code = scala.reflect.Code.lift{
- class C
- List((new C, new C))
- };
-
- val reporter = new ConsoleReporter(new Settings)
- val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
-}
diff --git a/test/pending/run/t5418.scala b/test/pending/run/t5418.scala
index 065710f15e..fe813cf5ae 100644
--- a/test/pending/run/t5418.scala
+++ b/test/pending/run/t5418.scala
@@ -9,6 +9,5 @@ object Test extends App {
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
- val ttree = toolbox.typeCheck(code.tree)
- toolbox.runExpr(ttree)
+ toolbox.runExpr(code.tree)
} \ No newline at end of file