summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
Diffstat (limited to 'test/files')
-rw-r--r--test/files/neg/t1909-object.check4
-rw-r--r--test/files/neg/t1909-object.flags1
-rw-r--r--test/files/neg/t1909-object.scala12
-rw-r--r--test/files/neg/t284.check8
-rw-r--r--test/files/neg/t284.flags1
-rw-r--r--test/files/neg/t284.scala7
-rw-r--r--test/files/neg/t7007.check7
-rw-r--r--test/files/neg/t7007.scala14
-rw-r--r--test/files/pos/infersingle.scala51
-rw-r--r--test/files/pos/private-types-after-typer.scala9
-rw-r--r--test/files/pos/t7847/A.scala5
-rw-r--r--test/files/pos/t7847/B.java10
-rw-r--r--test/files/run/compiler-asSeenFrom.check98
-rw-r--r--test/files/run/idempotency-case-classes.check2
-rw-r--r--test/files/run/macro-parse-position-malformed.check1
-rw-r--r--test/files/run/macro-parse-position-malformed/Impls_Macros_1.scala17
-rw-r--r--test/files/run/macro-parse-position-malformed/Test_2.scala3
-rw-r--r--test/files/run/macro-parse-position.check5
-rw-r--r--test/files/run/macro-parse-position/Impls_Macros_1.scala12
-rw-r--r--test/files/run/macro-parse-position/Test_2.scala3
-rw-r--r--test/files/run/reify_copypaste1.scala2
-rw-r--r--test/files/run/t1909.check3
-rw-r--r--test/files/run/t1909.scala (renamed from test/files/pos/t1909.scala)4
-rw-r--r--test/files/run/t1909b.scala (renamed from test/files/pos/t1909b-pos.scala)5
-rw-r--r--test/files/run/t1909c.scala9
-rw-r--r--test/files/run/t3832.scala17
-rw-r--r--test/files/run/t7223.check1
-rw-r--r--test/files/run/t7223.scala11
-rw-r--r--test/files/scalacheck/quasiquotes/DeprecationProps.scala52
-rw-r--r--test/files/scalacheck/quasiquotes/Test.scala3
30 files changed, 360 insertions, 17 deletions
diff --git a/test/files/neg/t1909-object.check b/test/files/neg/t1909-object.check
new file mode 100644
index 0000000000..401c1f7ebf
--- /dev/null
+++ b/test/files/neg/t1909-object.check
@@ -0,0 +1,4 @@
+t1909-object.scala:4: error: !!! SI-1909 Unable to STATICally lift object InnerTrouble$1, which is defined in the self- or super-constructor call of class Kaboom. A VerifyError is likely.
+ object InnerTrouble
+ ^
+one error found
diff --git a/test/files/neg/t1909-object.flags b/test/files/neg/t1909-object.flags
new file mode 100644
index 0000000000..eb8b40661b
--- /dev/null
+++ b/test/files/neg/t1909-object.flags
@@ -0,0 +1 @@
+-Xdev -Xfatal-warnings \ No newline at end of file
diff --git a/test/files/neg/t1909-object.scala b/test/files/neg/t1909-object.scala
new file mode 100644
index 0000000000..d6011ba4a5
--- /dev/null
+++ b/test/files/neg/t1909-object.scala
@@ -0,0 +1,12 @@
+class Kaboom(a: Any) {
+ def this() = {
+ this({
+ object InnerTrouble
+ InnerTrouble
+ })
+ }
+}
+
+object Test extends App {
+ new Kaboom()
+} \ No newline at end of file
diff --git a/test/files/neg/t284.check b/test/files/neg/t284.check
index 37801af1b5..7c2e9be03e 100644
--- a/test/files/neg/t284.check
+++ b/test/files/neg/t284.check
@@ -1,8 +1,6 @@
t284.scala:2: warning: Detected apparent refinement of Unit; are you missing an '=' sign?
- def f1(a: T): Unit { }
- ^
-t284.scala:5: error: Unmatched closing brace '}' ignored here
- }
- ^
+ def f1(a: T): Unit { }
+ ^
+error: No warnings can be incurred under -Xfatal-warnings.
one warning found
one error found
diff --git a/test/files/neg/t284.flags b/test/files/neg/t284.flags
new file mode 100644
index 0000000000..e8fb65d50c
--- /dev/null
+++ b/test/files/neg/t284.flags
@@ -0,0 +1 @@
+-Xfatal-warnings \ No newline at end of file
diff --git a/test/files/neg/t284.scala b/test/files/neg/t284.scala
index a210130102..f75bc3d4ba 100644
--- a/test/files/neg/t284.scala
+++ b/test/files/neg/t284.scala
@@ -1,6 +1,5 @@
trait B[T] {
- def f1(a: T): Unit { }
- def f2(a: T): Unit
- def f3(a: T) { }
- }
+ def f1(a: T): Unit { }
+ def f2(a: T): Unit
+ def f3(a: T) { }
}
diff --git a/test/files/neg/t7007.check b/test/files/neg/t7007.check
new file mode 100644
index 0000000000..e22ecb9e4e
--- /dev/null
+++ b/test/files/neg/t7007.check
@@ -0,0 +1,7 @@
+t7007.scala:5: error: Implementation restriction: <$anon: A => B> requires premature access to class Crash.
+ def this(a: Seq[A]) = this(a.collect{ case b: B => b}, a.collect{ case b: B => b})
+ ^
+t7007.scala:5: error: Implementation restriction: <$anon: A => B> requires premature access to class Crash.
+ def this(a: Seq[A]) = this(a.collect{ case b: B => b}, a.collect{ case b: B => b})
+ ^
+two errors found
diff --git a/test/files/neg/t7007.scala b/test/files/neg/t7007.scala
new file mode 100644
index 0000000000..e41dccf550
--- /dev/null
+++ b/test/files/neg/t7007.scala
@@ -0,0 +1,14 @@
+class A
+class B extends A
+
+class Crash(b1: Seq[B], b2: Seq[B]) {
+ def this(a: Seq[A]) = this(a.collect{ case b: B => b}, a.collect{ case b: B => b})
+}
+
+object Main extends App {
+
+ // runtime exception with either constructor
+ val c1 = new Crash(Seq(new B, new B))
+ val c2 = new Crash(Seq(new B), Seq(new B))
+
+}
diff --git a/test/files/pos/infersingle.scala b/test/files/pos/infersingle.scala
index 6830fcd799..60f4ff07e6 100644
--- a/test/files/pos/infersingle.scala
+++ b/test/files/pos/infersingle.scala
@@ -1,5 +1,52 @@
-object Test {
+object Test1 {
def one[T](x: T): Option[T] = Some(x)
val x = "one"
val y: Option[x.type] = one(x)
-} \ No newline at end of file
+}
+
+object Test2 {
+ // Has never worked, but seems desirable given the recent changes to
+ // pattern type inference.
+ val a = ""
+ object Id {
+ def unapply(xxxx: Any): Some[a.type] = Some[a.type](a)
+ }
+ val b: a.type = (a: a.type) match {
+ case Id(x) => x
+ }
+}
+
+object Test3 {
+ val a = ""
+ object Id {
+ def unapply(xxxx: Any): Some[Test3.type] = Some[Test3.type](Test3)
+ }
+ val b: Test3.type = a match {
+ case Id(x) => x
+ }
+}
+
+class Test4 {
+ val a = ""
+ object Id {
+ def unapply(xxxx: Any): Some[Test4.this.type] = Some[Test4.this.type](Test4.this)
+ }
+ val b: Test4.this.type = a match {
+ case Id(x) => x
+ }
+}
+
+class Super5 {
+ final val q = ""
+ def q1: q.type = q
+}
+
+class Test5 extends Super5 {
+ val a = ""
+ object Id {
+ def unapply(xxxx: Any): Some[Test5.super.q.type] = Some[Test5.super.q.type](q1)
+ }
+ val b: Test5.super.q.type = a match {
+ case Id(x) => x
+ }
+}
diff --git a/test/files/pos/private-types-after-typer.scala b/test/files/pos/private-types-after-typer.scala
new file mode 100644
index 0000000000..79ef934063
--- /dev/null
+++ b/test/files/pos/private-types-after-typer.scala
@@ -0,0 +1,9 @@
+// Testing that the type of the outer accessor in O2
+// doesn't crash the compiler over private type escaping scope.
+trait T {
+ class C {
+ private object O1 {
+ object O2
+ }
+ }
+} \ No newline at end of file
diff --git a/test/files/pos/t7847/A.scala b/test/files/pos/t7847/A.scala
new file mode 100644
index 0000000000..b6cce6ee79
--- /dev/null
+++ b/test/files/pos/t7847/A.scala
@@ -0,0 +1,5 @@
+case class Blah(a: Int)
+
+object Blah {
+ def apply2(a: Int) = apply(a)
+}
diff --git a/test/files/pos/t7847/B.java b/test/files/pos/t7847/B.java
new file mode 100644
index 0000000000..c214f2dcab
--- /dev/null
+++ b/test/files/pos/t7847/B.java
@@ -0,0 +1,10 @@
+public final class B {
+ void blah() {
+ Blah x = Blah.apply2(1);
+ Blah y = Blah.apply(1);
+ Blah z = Blah$.MODULE$.apply(1);
+
+ scala.Option un1 = Blah.unapply(null);
+ scala.Option un2 = Blah$.MODULE$.unapply(null);
+ }
+}
diff --git a/test/files/run/compiler-asSeenFrom.check b/test/files/run/compiler-asSeenFrom.check
index 47d40b0331..a1826c2784 100644
--- a/test/files/run/compiler-asSeenFrom.check
+++ b/test/files/run/compiler-asSeenFrom.check
@@ -1,6 +1,54 @@
class C {
type seen from prefix is
---- ---------------- --
+ C.this.I[Int] C[List[T3]] C[List[T3]]#I[Int]
+ C.this.I[Int] C[T1] C[T1]#I[Int]
+ C.this.I[Int] D[A1] D[A1]#I[Int]
+ C.this.I[Int] D[T3] D[T3]#I[Int]
+ C.this.I[List[Int]] C[List[T3]] C[List[T3]]#I[List[Int]]
+ C.this.I[List[Int]] C[T1] C[T1]#I[List[Int]]
+ C.this.I[List[Int]] D[A1] D[A1]#I[List[Int]]
+ C.this.I[List[Int]] D[T3] D[T3]#I[List[Int]]
+ C.this.I[T1] C[List[T3]] C[List[T3]]#I[List[T3]]
+ C.this.I[T1] C[T1] C[T1]#I[T1]
+ C.this.I[T1] D[A1] D[A1]#I[A1]
+ C.this.I[T1] D[T3] D[T3]#I[T3]
+ C.this.I[T2] C[List[T3]] C[List[T3]]#I[T2]
+ C.this.I[T2] C[T1] C[T1]#I[T2]
+ C.this.I[T2] D[A1] D[A1]#I[T2]
+ C.this.I[T2] D[T3] D[T3]#I[T2]
+ C.this.I[T3] C[List[T3]] C[List[T3]]#I[T3]
+ C.this.I[T3] C[T1] C[T1]#I[T3]
+ C.this.I[T3] D[A1] D[A1]#I[T3]
+ C.this.I[T3] D[T3] D[T3]#I[T3]
+ C.this.I[T4] C[List[T3]] C[List[T3]]#I[T4]
+ C.this.I[T4] C[T1] C[T1]#I[T4]
+ C.this.I[T4] D[A1] D[A1]#I[T4]
+ C.this.I[T4] D[T3] D[T3]#I[T4]
+ C.this.J[Int] C[List[T3]] C[List[T3]]#J[Int]
+ C.this.J[Int] C[T1] C[T1]#J[Int]
+ C.this.J[Int] D[A1] D[A1]#J[Int]
+ C.this.J[Int] D[T3] D[T3]#J[Int]
+ C.this.J[List[Int]] C[List[T3]] C[List[T3]]#J[List[Int]]
+ C.this.J[List[Int]] C[T1] C[T1]#J[List[Int]]
+ C.this.J[List[Int]] D[A1] D[A1]#J[List[Int]]
+ C.this.J[List[Int]] D[T3] D[T3]#J[List[Int]]
+ C.this.J[T1] C[List[T3]] C[List[T3]]#J[List[T3]]
+ C.this.J[T1] C[T1] C[T1]#J[T1]
+ C.this.J[T1] D[A1] D[A1]#J[A1]
+ C.this.J[T1] D[T3] D[T3]#J[T3]
+ C.this.J[T2] C[List[T3]] C[List[T3]]#J[T2]
+ C.this.J[T2] C[T1] C[T1]#J[T2]
+ C.this.J[T2] D[A1] D[A1]#J[T2]
+ C.this.J[T2] D[T3] D[T3]#J[T2]
+ C.this.J[T3] C[List[T3]] C[List[T3]]#J[T3]
+ C.this.J[T3] C[T1] C[T1]#J[T3]
+ C.this.J[T3] D[A1] D[A1]#J[T3]
+ C.this.J[T3] D[T3] D[T3]#J[T3]
+ C.this.J[T4] C[List[T3]] C[List[T3]]#J[T4]
+ C.this.J[T4] C[T1] C[T1]#J[T4]
+ C.this.J[T4] D[A1] D[A1]#J[T4]
+ C.this.J[T4] D[T3] D[T3]#J[T4]
C[List[T3]]#I[T1] D[A1] C[List[T3]]#I[A1]
C[List[T3]]#I[T1] D[T3] C[List[T3]]#I[T3]
C[List[T3]]#J[T1] D[A1] C[List[T3]]#J[A1]
@@ -49,6 +97,8 @@ class C {
class D {
type seen from prefix is
---- ---------------- --
+ C.this.I[T3] D[A1] C.this.I[A1]
+ C.this.J[T3] D[A1] C.this.J[A1]
C[List[T3]]#I[Int] D[A1] C[List[A1]]#I[Int]
C[List[T3]]#I[List[Int]] D[A1] C[List[A1]]#I[List[Int]]
C[List[T3]]#I[T1] D[A1] C[List[A1]]#I[T1]
@@ -73,6 +123,42 @@ class D {
class I {
type seen from prefix is
---- ---------------- --
+ C.this.I[Int] D.this.J[T4] D.this.cD.I[Int]
+ C.this.I[Int] Z.dZ.J[A2] Z.dZ.cD.I[Int]
+ C.this.I[Int] Z.dZ.J[P] Z.dZ.cD.I[Int]
+ C.this.I[List[Int]] D.this.J[T4] D.this.cD.I[List[Int]]
+ C.this.I[List[Int]] Z.dZ.J[A2] Z.dZ.cD.I[List[Int]]
+ C.this.I[List[Int]] Z.dZ.J[P] Z.dZ.cD.I[List[Int]]
+ C.this.I[T1] D.this.J[T4] D.this.cD.I[List[T3]]
+ C.this.I[T1] Z.dZ.J[A2] Z.dZ.cD.I[List[A1]]
+ C.this.I[T1] Z.dZ.J[P] Z.dZ.cD.I[List[A1]]
+ C.this.I[T2] D.this.J[T4] D.this.cD.I[T4]
+ C.this.I[T2] Z.dZ.J[A2] Z.dZ.cD.I[A2]
+ C.this.I[T2] Z.dZ.J[P] Z.dZ.cD.I[P]
+ C.this.I[T3] D.this.J[T4] D.this.cD.I[T3]
+ C.this.I[T3] Z.dZ.J[A2] Z.dZ.cD.I[T3]
+ C.this.I[T3] Z.dZ.J[P] Z.dZ.cD.I[T3]
+ C.this.I[T4] D.this.J[T4] D.this.cD.I[T4]
+ C.this.I[T4] Z.dZ.J[A2] Z.dZ.cD.I[T4]
+ C.this.I[T4] Z.dZ.J[P] Z.dZ.cD.I[T4]
+ C.this.J[Int] D.this.J[T4] D.this.cD.J[Int]
+ C.this.J[Int] Z.dZ.J[A2] Z.dZ.cD.J[Int]
+ C.this.J[Int] Z.dZ.J[P] Z.dZ.cD.J[Int]
+ C.this.J[List[Int]] D.this.J[T4] D.this.cD.J[List[Int]]
+ C.this.J[List[Int]] Z.dZ.J[A2] Z.dZ.cD.J[List[Int]]
+ C.this.J[List[Int]] Z.dZ.J[P] Z.dZ.cD.J[List[Int]]
+ C.this.J[T1] D.this.J[T4] D.this.cD.J[List[T3]]
+ C.this.J[T1] Z.dZ.J[A2] Z.dZ.cD.J[List[A1]]
+ C.this.J[T1] Z.dZ.J[P] Z.dZ.cD.J[List[A1]]
+ C.this.J[T2] D.this.J[T4] D.this.cD.J[T4]
+ C.this.J[T2] Z.dZ.J[A2] Z.dZ.cD.J[A2]
+ C.this.J[T2] Z.dZ.J[P] Z.dZ.cD.J[P]
+ C.this.J[T3] D.this.J[T4] D.this.cD.J[T3]
+ C.this.J[T3] Z.dZ.J[A2] Z.dZ.cD.J[T3]
+ C.this.J[T3] Z.dZ.J[P] Z.dZ.cD.J[T3]
+ C.this.J[T4] D.this.J[T4] D.this.cD.J[T4]
+ C.this.J[T4] Z.dZ.J[A2] Z.dZ.cD.J[T4]
+ C.this.J[T4] Z.dZ.J[P] Z.dZ.cD.J[T4]
C[List[T3]]#I[T1] D.this.J[T4] C[List[T3]]#I[List[T3]]
C[List[T3]]#I[T1] Z.dZ.J[A2] C[List[T3]]#I[List[A1]]
C[List[T3]]#I[T1] Z.dZ.J[P] C[List[T3]]#I[List[A1]]
@@ -137,6 +223,14 @@ class I {
class J {
type seen from prefix is
---- ---------------- --
+ C.this.I[T3] Z.dZ.J[A2] C.this.I[A1]
+ C.this.I[T3] Z.dZ.J[P] C.this.I[A1]
+ C.this.I[T4] Z.dZ.J[A2] C.this.I[A2]
+ C.this.I[T4] Z.dZ.J[P] C.this.I[P]
+ C.this.J[T3] Z.dZ.J[A2] C.this.J[A1]
+ C.this.J[T3] Z.dZ.J[P] C.this.J[A1]
+ C.this.J[T4] Z.dZ.J[A2] C.this.J[A2]
+ C.this.J[T4] Z.dZ.J[P] C.this.J[P]
C[List[T3]]#I[Int] Z.dZ.J[A2] C[List[A1]]#I[Int]
C[List[T3]]#I[Int] Z.dZ.J[P] C[List[A1]]#I[Int]
C[List[T3]]#I[List[Int]] Z.dZ.J[A2] C[List[A1]]#I[List[Int]]
@@ -269,8 +363,8 @@ value jZ { // after parser
value jZ { // after explicitouter
protected val $outer: D.this.type
- val $outer(): D.this.type
- val $outer(): C.this.type
+ val $outer(): ll.D[T3]
+ val $outer(): ll.C[T1]
def thisI(): I.this.type
def thisC(): C.this.type
def t2(): T2
diff --git a/test/files/run/idempotency-case-classes.check b/test/files/run/idempotency-case-classes.check
index e0453883ff..5a8d0ad9d3 100644
--- a/test/files/run/idempotency-case-classes.check
+++ b/test/files/run/idempotency-case-classes.check
@@ -47,7 +47,7 @@ C(2,3)
case <synthetic> def unapply(x$0: C): Option[(Int, Int)] = if (x$0.==(null))
scala.this.None
else
- Some.apply[(Int, Int)](Tuple2.apply[Int, Int](x$0.x, x$0.y));
+ Some.apply[(Int, Int)](scala.Tuple2.apply[Int, Int](x$0.x, x$0.y));
<synthetic> private def readResolve(): Object = C
};
Predef.println(C.apply(2, 3))
diff --git a/test/files/run/macro-parse-position-malformed.check b/test/files/run/macro-parse-position-malformed.check
new file mode 100644
index 0000000000..00f0bc5b62
--- /dev/null
+++ b/test/files/run/macro-parse-position-malformed.check
@@ -0,0 +1 @@
+failed with 'source-<macro>,line-1,offset=7' position and '')' expected but eof found.' message
diff --git a/test/files/run/macro-parse-position-malformed/Impls_Macros_1.scala b/test/files/run/macro-parse-position-malformed/Impls_Macros_1.scala
new file mode 100644
index 0000000000..2417eb6897
--- /dev/null
+++ b/test/files/run/macro-parse-position-malformed/Impls_Macros_1.scala
@@ -0,0 +1,17 @@
+import scala.language.experimental.macros
+import scala.reflect.macros.{Context => Ctx, ParseException}
+
+object Macros {
+ def impl(c: Ctx)() = {
+ import c.universe._
+ val out = try {
+ c.parse("foo(bar")
+ "didn't fail"
+ } catch {
+ case e: ParseException =>
+ s"failed with '${e.pos}' position and '${e.msg}' message"
+ }
+ c.Expr[String](Literal(Constant(out)))
+ }
+ def foo(): String = macro impl
+} \ No newline at end of file
diff --git a/test/files/run/macro-parse-position-malformed/Test_2.scala b/test/files/run/macro-parse-position-malformed/Test_2.scala
new file mode 100644
index 0000000000..cff569bd81
--- /dev/null
+++ b/test/files/run/macro-parse-position-malformed/Test_2.scala
@@ -0,0 +1,3 @@
+object Test extends App {
+ println(Macros.foo)
+}
diff --git a/test/files/run/macro-parse-position.check b/test/files/run/macro-parse-position.check
new file mode 100644
index 0000000000..3da0320696
--- /dev/null
+++ b/test/files/run/macro-parse-position.check
@@ -0,0 +1,5 @@
+false
+source-<macro>,line-1,offset=4
+8
+foo bar
+
diff --git a/test/files/run/macro-parse-position/Impls_Macros_1.scala b/test/files/run/macro-parse-position/Impls_Macros_1.scala
new file mode 100644
index 0000000000..b6f1ebbcd5
--- /dev/null
+++ b/test/files/run/macro-parse-position/Impls_Macros_1.scala
@@ -0,0 +1,12 @@
+import scala.language.experimental.macros
+import scala.reflect.macros.{Context => Ctx}
+
+object Macros {
+ def impl(c: Ctx)() = {
+ import c.universe._
+ val t = c.parse("foo bar")
+ val out = s"${t.pos == NoPosition}\n${t.pos}\n${t.pos.source.content.length}\n${new String(t.pos.source.content)}"
+ c.Expr[String](Literal(Constant(out)))
+ }
+ def foo(): String = macro impl
+} \ No newline at end of file
diff --git a/test/files/run/macro-parse-position/Test_2.scala b/test/files/run/macro-parse-position/Test_2.scala
new file mode 100644
index 0000000000..cff569bd81
--- /dev/null
+++ b/test/files/run/macro-parse-position/Test_2.scala
@@ -0,0 +1,3 @@
+object Test extends App {
+ println(Macros.foo)
+}
diff --git a/test/files/run/reify_copypaste1.scala b/test/files/run/reify_copypaste1.scala
index b2eef28026..cf813182ae 100644
--- a/test/files/run/reify_copypaste1.scala
+++ b/test/files/run/reify_copypaste1.scala
@@ -12,7 +12,7 @@ object Test extends App {
val reify = Select(Select(Select(Select(Ident(ScalaPackage), TermName("reflect")), TermName("runtime")), TermName("universe")), TermName("reify"))
val reifee = Block(List(ValDef(Modifiers(LAZY), TermName("x"), TypeTree(), Apply(Ident(ListModule), List(Literal(Constant(1)), Literal(Constant(2)))))), Ident(TermName("x")))
toolBox.eval(Apply(reify, List(reifee)))
- val Block(List(tpeCopypaste), exprCopypaste @ ModuleDef(_, _, Template(_, _, (_ :: stats) :+ expr))) = toolBox.parse(output.toString())
+ val Block(List(tpeCopypaste, exprCopypaste @ ModuleDef(_, _, Template(_, _, (_ :: stats) :+ expr))), Literal(Constant(()))) = toolBox.parse(output.toString())
output.reset()
toolBox.eval(Block(stats, expr))
stdout.println(output.toString)
diff --git a/test/files/run/t1909.check b/test/files/run/t1909.check
new file mode 100644
index 0000000000..7d25be60fd
--- /dev/null
+++ b/test/files/run/t1909.check
@@ -0,0 +1,3 @@
+t1909.scala:7: warning: A try without a catch or finally is equivalent to putting its body in a block; no exceptions are handled.
+ def this(p: String) = this(try 0)
+ ^
diff --git a/test/files/pos/t1909.scala b/test/files/run/t1909.scala
index 01213f62a3..8ead7bacf2 100644
--- a/test/files/pos/t1909.scala
+++ b/test/files/run/t1909.scala
@@ -6,3 +6,7 @@ class Ticket1909 {
def this(value: Int) = this()
def this(p: String) = this(try 0)
}
+
+object Test extends App {
+ new Ticket1909("")
+}
diff --git a/test/files/pos/t1909b-pos.scala b/test/files/run/t1909b.scala
index b914bee366..89b2af57dc 100644
--- a/test/files/pos/t1909b-pos.scala
+++ b/test/files/run/t1909b.scala
@@ -3,4 +3,7 @@ class Ticket1909 (x: Int) {
def bar() = 5
bar
})
-} \ No newline at end of file
+}
+object Test extends App {
+ new Ticket1909()
+}
diff --git a/test/files/run/t1909c.scala b/test/files/run/t1909c.scala
new file mode 100644
index 0000000000..87c0eb08b5
--- /dev/null
+++ b/test/files/run/t1909c.scala
@@ -0,0 +1,9 @@
+class Base(a: Any)
+
+// java.lang.VerifyError: (class: Sub, method: <init> signature: ()V) Expecting to find object/array on stack
+// at Test$.<init>(t1909c.scala)
+class Sub() extends Base({ def bippy = 5; bippy })
+
+object Test extends App {
+ new Sub()
+}
diff --git a/test/files/run/t3832.scala b/test/files/run/t3832.scala
new file mode 100644
index 0000000000..ac44358bc7
--- /dev/null
+++ b/test/files/run/t3832.scala
@@ -0,0 +1,17 @@
+class t3832 {
+ def this(un: Int) = {
+ this()
+ def bippy = this
+ ()
+ }
+ def this(un: Boolean) = {
+ this()
+ def boppy = () => this
+ ()
+ }
+}
+
+object Test extends App {
+ new t3832(0)
+ new t3832(true)
+}
diff --git a/test/files/run/t7223.check b/test/files/run/t7223.check
new file mode 100644
index 0000000000..573541ac97
--- /dev/null
+++ b/test/files/run/t7223.check
@@ -0,0 +1 @@
+0
diff --git a/test/files/run/t7223.scala b/test/files/run/t7223.scala
new file mode 100644
index 0000000000..a707e957df
--- /dev/null
+++ b/test/files/run/t7223.scala
@@ -0,0 +1,11 @@
+class D(val a: () => Int => () => Any) {
+ a()(0)()
+}
+
+object Crash extends D(() => {
+ (x: Int) => {() => { new { println(x.toString) } }}
+})
+
+object Test extends App {
+ Crash
+}
diff --git a/test/files/scalacheck/quasiquotes/DeprecationProps.scala b/test/files/scalacheck/quasiquotes/DeprecationProps.scala
new file mode 100644
index 0000000000..8e1601cf9d
--- /dev/null
+++ b/test/files/scalacheck/quasiquotes/DeprecationProps.scala
@@ -0,0 +1,52 @@
+import org.scalacheck._, Prop._, Gen._, Arbitrary._
+import scala.reflect.runtime.universe._
+
+object DeprecationProps extends QuasiquoteProperties("deprecation") {
+ val tname = TypeName("Foo")
+ val tpt = tq"Foo"
+ val tpe = typeOf[Int]
+ val sym = tpe.typeSymbol.asType
+ val argss = List(q"x") :: List(q"y") :: Nil
+ val args = q"x" :: q"y" :: Nil
+
+ property("new tpt argss") = test {
+ assert(q"new $tpt(...$argss)" ≈ New(tpt, argss))
+ }
+
+ property("new tpe args") = test {
+ assert(q"new $tpe(..$args)" ≈ New(tpe, args: _*))
+ }
+
+ property("new tpe args") = test {
+ assert(q"new ${sym.toType}(..$args)" ≈ New(sym, args: _*))
+ }
+
+ property("apply sym args") = test {
+ assert(q"$sym(..$args)" ≈ Apply(sym, args: _*))
+ }
+
+ property("applyconstructor") = test {
+ assert(q"new $tpt(..$args)" ≈ ApplyConstructor(tpt, args))
+ }
+
+ property("super sym name") = test {
+ assert(q"$sym.super[$tname].x".qualifier ≈ Super(sym, tname))
+ }
+
+ property("throw tpe args") = test {
+ assert(q"throw new $tpe(..$args)" ≈ Throw(tpe, args: _*))
+ }
+
+ property("casedef pat body") = test {
+ val pat = pq"foo"
+ val body = q"bar"
+ assert(cq"$pat => $body" ≈ CaseDef(pat, body))
+ }
+
+ property("try body cases") = test {
+ val cases = (pq"a", q"b") :: (pq"c", q"d") :: Nil
+ val newcases = cases.map { case (pat, body) => cq"$pat => $body" }
+ val body = q"foo"
+ assert(q"try $body catch { case ..$newcases }" ≈ Try(body, cases: _*))
+ }
+} \ No newline at end of file
diff --git a/test/files/scalacheck/quasiquotes/Test.scala b/test/files/scalacheck/quasiquotes/Test.scala
index 05097711ef..f41d961888 100644
--- a/test/files/scalacheck/quasiquotes/Test.scala
+++ b/test/files/scalacheck/quasiquotes/Test.scala
@@ -11,4 +11,5 @@ object Test extends Properties("quasiquotes") {
include(ErrorProps)
include(DefinitionConstructionProps)
include(DefinitionDeconstructionProps)
-} \ No newline at end of file
+ include(DeprecationProps)
+}