summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/idempotency-case-classes.scala2
-rw-r--r--test/files/run/idempotency-extractors.scala2
-rw-r--r--test/files/run/idempotency-labels.scala2
-rw-r--r--test/files/run/idempotency-lazy-vals.scala2
-rw-r--r--test/files/run/idempotency-this.scala2
-rw-r--r--test/files/run/macro-default-params.check1
-rw-r--r--test/files/run/macro-default-params/Macros_1.scala27
-rw-r--r--test/files/run/macro-default-params/Test_2.scala (renamed from test/files/run/macro-reify-splice-splice/Test_2.scala)4
-rw-r--r--test/files/run/macro-reify-nested-a/Impls_Macros_1.scala2
-rw-r--r--test/files/run/macro-reify-nested-b/Impls_Macros_1.scala2
-rw-r--r--test/files/run/macro-reify-splice-splice.check1
-rw-r--r--test/files/run/macro-reify-splice-splice.flags1
-rw-r--r--test/files/run/macro-reify-splice-splice/Macros_1.scala11
-rw-r--r--test/files/run/macro-reify-unreify/Macros_1.scala2
-rw-r--r--test/files/run/macro-typecheck-implicitsdisabled/Impls_Macros_1.scala4
-rw-r--r--test/files/run/macro-typecheck-macrosdisabled.check4
-rw-r--r--test/files/run/macro-typecheck-macrosdisabled/Impls_Macros_1.scala4
-rw-r--r--test/files/run/macro-typecheck-macrosdisabled2.check4
-rw-r--r--test/files/run/macro-typecheck-macrosdisabled2/Impls_Macros_1.scala4
-rw-r--r--test/files/run/mutable-anyrefmap.scala91
-rw-r--r--test/files/run/mutable-longmap.scala79
-rw-r--r--test/files/run/reflection-mem-typecheck.scala2
-rw-r--r--test/files/run/reify_ann1a.scala2
-rw-r--r--test/files/run/reify_ann1b.scala2
-rw-r--r--test/files/run/reify_ann2a.scala2
-rw-r--r--test/files/run/reify_ann3.scala2
-rw-r--r--test/files/run/reify_ann4.scala2
-rw-r--r--test/files/run/reify_ann5.scala2
-rw-r--r--test/files/run/reify_classfileann_a.scala2
-rw-r--r--test/files/run/reify_classfileann_b.scala2
-rw-r--r--test/files/run/reify_renamed_term_t5841.check (renamed from test/files/run/reify_renamed_term_si5841.check)0
-rw-r--r--test/files/run/reify_renamed_term_t5841.scala (renamed from test/files/run/reify_renamed_term_si5841.scala)0
-rw-r--r--test/files/run/resetattrs-this.scala2
-rw-r--r--test/files/run/showraw_aliases.scala2
-rw-r--r--test/files/run/showraw_tree_types_ids.scala4
-rw-r--r--test/files/run/showraw_tree_types_typed.scala4
-rw-r--r--test/files/run/showraw_tree_ultimate.scala4
-rw-r--r--test/files/run/t4750.check (renamed from test/files/run/si4750.check)0
-rw-r--r--test/files/run/t4750.scala (renamed from test/files/run/si4750.scala)0
-rw-r--r--test/files/run/t5045.check (renamed from test/files/run/si5045.check)0
-rw-r--r--test/files/run/t5045.scala (renamed from test/files/run/si5045.scala)0
-rw-r--r--test/files/run/t5415.scala2
-rw-r--r--test/files/run/t5418b.scala2
-rw-r--r--test/files/run/t5704.scala2
-rw-r--r--test/files/run/t5816.scala2
-rw-r--r--test/files/run/t5912.scala2
-rw-r--r--test/files/run/t5943a1.scala2
-rw-r--r--test/files/run/t6023.scala2
-rw-r--r--test/files/run/t6355.check2
-rw-r--r--test/files/run/t6355.scala17
-rw-r--r--test/files/run/t6392b.scala2
-rw-r--r--test/files/run/t7185.check2
-rw-r--r--test/files/run/t7185.scala2
-rw-r--r--test/files/run/t7406.check1
-rw-r--r--test/files/run/t7406.scala14
-rw-r--r--test/files/run/t7777.check7
-rw-r--r--test/files/run/t7777/Macros_1.scala17
-rw-r--r--test/files/run/t7777/Test_2.scala6
-rw-r--r--test/files/run/t7880.scala7
-rw-r--r--test/files/run/t8017.flags1
-rw-r--r--test/files/run/t8017/value-class-lambda.scala40
-rw-r--r--test/files/run/t8017/value-class.scala3
-rw-r--r--test/files/run/t8047.check7
-rw-r--r--test/files/run/t8047.scala31
-rw-r--r--test/files/run/t8091.check1
-rw-r--r--test/files/run/t8091.scala4
-rw-r--r--test/files/run/t8104.check1
-rw-r--r--test/files/run/t8104/Macros_1.scala11
-rw-r--r--test/files/run/t8104/Test_2.scala16
-rw-r--r--test/files/run/toolbox_typecheck_implicitsdisabled.scala4
-rw-r--r--test/files/run/toolbox_typecheck_macrosdisabled.check4
-rw-r--r--test/files/run/toolbox_typecheck_macrosdisabled.scala4
-rw-r--r--test/files/run/toolbox_typecheck_macrosdisabled2.check4
-rw-r--r--test/files/run/toolbox_typecheck_macrosdisabled2.scala4
74 files changed, 271 insertions, 240 deletions
diff --git a/test/files/run/idempotency-case-classes.scala b/test/files/run/idempotency-case-classes.scala
index 4da8393cb6..81e119582b 100644
--- a/test/files/run/idempotency-case-classes.scala
+++ b/test/files/run/idempotency-case-classes.scala
@@ -10,7 +10,7 @@ object Test extends App {
}
println(casee.eval)
val tb = cm.mkToolBox()
- val tcasee = tb.typeCheck(casee.tree)
+ val tcasee = tb.typecheck(casee.tree)
println(tcasee)
val rtcasee = tb.resetAllAttrs(tcasee)
try {
diff --git a/test/files/run/idempotency-extractors.scala b/test/files/run/idempotency-extractors.scala
index fe033295f5..b66b043be1 100644
--- a/test/files/run/idempotency-extractors.scala
+++ b/test/files/run/idempotency-extractors.scala
@@ -10,7 +10,7 @@ object Test extends App {
}
println(extractor.eval)
val tb = cm.mkToolBox()
- val textractor = tb.typeCheck(extractor.tree)
+ val textractor = tb.typecheck(extractor.tree)
println(textractor)
val rtextractor = tb.resetAllAttrs(textractor)
try {
diff --git a/test/files/run/idempotency-labels.scala b/test/files/run/idempotency-labels.scala
index 82d009751a..f1a185d3d0 100644
--- a/test/files/run/idempotency-labels.scala
+++ b/test/files/run/idempotency-labels.scala
@@ -11,7 +11,7 @@ object Test extends App {
}
println(label.eval)
val tb = cm.mkToolBox()
- val tlabel = tb.typeCheck(label.tree)
+ val tlabel = tb.typecheck(label.tree)
println(tlabel)
val rtlabel = tb.resetAllAttrs(tlabel)
try {
diff --git a/test/files/run/idempotency-lazy-vals.scala b/test/files/run/idempotency-lazy-vals.scala
index 3531f9ff4b..e763f2f3f4 100644
--- a/test/files/run/idempotency-lazy-vals.scala
+++ b/test/files/run/idempotency-lazy-vals.scala
@@ -15,7 +15,7 @@ object Test extends App {
}
println(lazee.eval)
val tb = cm.mkToolBox()
- val tlazee = tb.typeCheck(lazee.tree)
+ val tlazee = tb.typecheck(lazee.tree)
println(tlazee)
val rtlazee = tb.resetAllAttrs(tlazee)
try {
diff --git a/test/files/run/idempotency-this.scala b/test/files/run/idempotency-this.scala
index 5cd4226326..2db1efd2d1 100644
--- a/test/files/run/idempotency-this.scala
+++ b/test/files/run/idempotency-this.scala
@@ -9,7 +9,7 @@ object Test extends App {
}
println(thiss.eval)
val tb = cm.mkToolBox()
- val tthiss = tb.typeCheck(thiss.tree)
+ val tthiss = tb.typecheck(thiss.tree)
println(tthiss)
println(showRaw(tthiss))
val rtthiss = tb.resetAllAttrs(tthiss)
diff --git a/test/files/run/macro-default-params.check b/test/files/run/macro-default-params.check
new file mode 100644
index 0000000000..573541ac97
--- /dev/null
+++ b/test/files/run/macro-default-params.check
@@ -0,0 +1 @@
+0
diff --git a/test/files/run/macro-default-params/Macros_1.scala b/test/files/run/macro-default-params/Macros_1.scala
new file mode 100644
index 0000000000..47780ea4b8
--- /dev/null
+++ b/test/files/run/macro-default-params/Macros_1.scala
@@ -0,0 +1,27 @@
+import scala.language.experimental.macros
+import scala.reflect.macros.WhiteboxContext
+
+object Macros {
+ def id[A]: A = null.asInstanceOf[A]
+
+ def foo: Any = macro impl
+ def impl(c: WhiteboxContext): c.Tree = {
+ import c.universe._
+ import Flag._
+
+ lazy val tpe = TypeTree(typeOf[Int])
+
+ /* If we used this line instead, it would work! */
+ // lazy val tpe = tq"Int"
+
+ lazy val param: ValDef = {
+ val p1 = q"val a: ${tpe.duplicate} = Macros.id[${tpe.duplicate}]"
+ ValDef(Modifiers(DEFAULTPARAM), p1.name, p1.tpt, p1.rhs)
+ }
+
+ q"""
+ class C { def f($param) = a }
+ println(new C().f())
+ """
+ }
+}
diff --git a/test/files/run/macro-reify-splice-splice/Test_2.scala b/test/files/run/macro-default-params/Test_2.scala
index f697da6020..5d19639cdd 100644
--- a/test/files/run/macro-reify-splice-splice/Test_2.scala
+++ b/test/files/run/macro-default-params/Test_2.scala
@@ -1,3 +1,3 @@
object Test extends App {
- println(Macros.foo)
-} \ No newline at end of file
+ Macros.foo
+}
diff --git a/test/files/run/macro-reify-nested-a/Impls_Macros_1.scala b/test/files/run/macro-reify-nested-a/Impls_Macros_1.scala
index ebd80c02ba..8f7a34a10a 100644
--- a/test/files/run/macro-reify-nested-a/Impls_Macros_1.scala
+++ b/test/files/run/macro-reify-nested-a/Impls_Macros_1.scala
@@ -26,7 +26,7 @@ object QueryableMacros{
import treeBuild._
val element_type = implicitly[c.WeakTypeTag[S]].tpe
val foo = c.Expr[ru.Expr[Queryable[S]]](
- c.reifyTree( mkRuntimeUniverseRef, EmptyTree, c.typeCheck(
+ c.reifyTree( mkRuntimeUniverseRef, EmptyTree, c.typecheck(
Utils[c.type](c).removeDoubleReify(
Apply(Select(c.prefix.tree, TermName( name )), List( projection.tree ))
).asInstanceOf[Tree]
diff --git a/test/files/run/macro-reify-nested-b/Impls_Macros_1.scala b/test/files/run/macro-reify-nested-b/Impls_Macros_1.scala
index ebd80c02ba..8f7a34a10a 100644
--- a/test/files/run/macro-reify-nested-b/Impls_Macros_1.scala
+++ b/test/files/run/macro-reify-nested-b/Impls_Macros_1.scala
@@ -26,7 +26,7 @@ object QueryableMacros{
import treeBuild._
val element_type = implicitly[c.WeakTypeTag[S]].tpe
val foo = c.Expr[ru.Expr[Queryable[S]]](
- c.reifyTree( mkRuntimeUniverseRef, EmptyTree, c.typeCheck(
+ c.reifyTree( mkRuntimeUniverseRef, EmptyTree, c.typecheck(
Utils[c.type](c).removeDoubleReify(
Apply(Select(c.prefix.tree, TermName( name )), List( projection.tree ))
).asInstanceOf[Tree]
diff --git a/test/files/run/macro-reify-splice-splice.check b/test/files/run/macro-reify-splice-splice.check
deleted file mode 100644
index 3b18e512db..0000000000
--- a/test/files/run/macro-reify-splice-splice.check
+++ /dev/null
@@ -1 +0,0 @@
-hello world
diff --git a/test/files/run/macro-reify-splice-splice.flags b/test/files/run/macro-reify-splice-splice.flags
deleted file mode 100644
index cd66464f2f..0000000000
--- a/test/files/run/macro-reify-splice-splice.flags
+++ /dev/null
@@ -1 +0,0 @@
--language:experimental.macros \ No newline at end of file
diff --git a/test/files/run/macro-reify-splice-splice/Macros_1.scala b/test/files/run/macro-reify-splice-splice/Macros_1.scala
deleted file mode 100644
index 691f22ad07..0000000000
--- a/test/files/run/macro-reify-splice-splice/Macros_1.scala
+++ /dev/null
@@ -1,11 +0,0 @@
-import scala.reflect.macros.{BlackboxContext => Ctx}
-
-object Macros {
- def foo = macro Impls.foo
-
- object Impls {
- def foo(c: Ctx) = c.universe.reify {
- { c.universe.reify(c.universe.reify("hello world")) }.splice.splice
- }
- }
-} \ No newline at end of file
diff --git a/test/files/run/macro-reify-unreify/Macros_1.scala b/test/files/run/macro-reify-unreify/Macros_1.scala
index d1e71b3311..055959018a 100644
--- a/test/files/run/macro-reify-unreify/Macros_1.scala
+++ b/test/files/run/macro-reify-unreify/Macros_1.scala
@@ -9,7 +9,7 @@ object Macros {
import treeBuild._
val world = c.reifyTree(mkRuntimeUniverseRef, EmptyTree, s.tree)
- val greeting = c.reifyTree(mkRuntimeUniverseRef, EmptyTree, c.typeCheck(Apply(Select(Literal(Constant("hello ")), TermName("$plus")), List(c.unreifyTree(world)))))
+ val greeting = c.reifyTree(mkRuntimeUniverseRef, EmptyTree, c.typecheck(Apply(Select(Literal(Constant("hello ")), TermName("$plus")), List(c.unreifyTree(world)))))
val typedGreeting = c.Expr[String](greeting)
c.universe.reify {
diff --git a/test/files/run/macro-typecheck-implicitsdisabled/Impls_Macros_1.scala b/test/files/run/macro-typecheck-implicitsdisabled/Impls_Macros_1.scala
index 9f7d6f641c..ce937671cc 100644
--- a/test/files/run/macro-typecheck-implicitsdisabled/Impls_Macros_1.scala
+++ b/test/files/run/macro-typecheck-implicitsdisabled/Impls_Macros_1.scala
@@ -5,7 +5,7 @@ object Macros {
import c.universe._
val tree1 = Apply(Select(Literal(Constant(1)), TermName("$minus$greater")), List(Literal(Constant(2))))
- val ttree1 = c.typeCheck(tree1, withImplicitViewsDisabled = false)
+ val ttree1 = c.typecheck(tree1, withImplicitViewsDisabled = false)
c.Expr[String](Literal(Constant(ttree1.toString)))
}
@@ -16,7 +16,7 @@ object Macros {
try {
val tree2 = Apply(Select(Literal(Constant(1)), TermName("$minus$greater")), List(Literal(Constant(2))))
- val ttree2 = c.typeCheck(tree2, withImplicitViewsDisabled = true)
+ val ttree2 = c.typecheck(tree2, withImplicitViewsDisabled = true)
c.Expr[String](Literal(Constant(ttree2.toString)))
} catch {
case ex: Throwable =>
diff --git a/test/files/run/macro-typecheck-macrosdisabled.check b/test/files/run/macro-typecheck-macrosdisabled.check
index e0e880ab66..0579a4f4c8 100644
--- a/test/files/run/macro-typecheck-macrosdisabled.check
+++ b/test/files/run/macro-typecheck-macrosdisabled.check
@@ -1,4 +1,4 @@
-{
+({
val $u: reflect.runtime.universe.type = scala.reflect.runtime.`package`.universe;
val $m: $u.Mirror = scala.reflect.runtime.`package`.universe.runtimeMirror(this.getClass().getClassLoader());
$u.Expr.apply[Int(2)]($m, {
@@ -28,5 +28,5 @@
};
new $typecreator2()
}))
-}
+}: reflect.runtime.universe.Expr[Int])
ru.reify[Int](2)
diff --git a/test/files/run/macro-typecheck-macrosdisabled/Impls_Macros_1.scala b/test/files/run/macro-typecheck-macrosdisabled/Impls_Macros_1.scala
index 41e58e0e4d..45b9a4fcc8 100644
--- a/test/files/run/macro-typecheck-macrosdisabled/Impls_Macros_1.scala
+++ b/test/files/run/macro-typecheck-macrosdisabled/Impls_Macros_1.scala
@@ -6,7 +6,7 @@ object Macros {
val ru = Select(Select(Select(Select(Ident(TermName("scala")), TermName("reflect")), TermName("runtime")), TermName("package")), TermName("universe"))
val tree1 = Apply(Select(ru, TermName("reify")), List(Literal(Constant(2))))
- val ttree1 = c.typeCheck(tree1, withMacrosDisabled = false)
+ val ttree1 = c.typecheck(tree1, withMacrosDisabled = false)
c.Expr[String](Literal(Constant(ttree1.toString)))
}
@@ -22,7 +22,7 @@ object Macros {
build.setTypeSignature(ru, rutpe)
val tree2 = Apply(Select(Ident(ru), TermName("reify")), List(Literal(Constant(2))))
- val ttree2 = c.typeCheck(tree2, withMacrosDisabled = true)
+ val ttree2 = c.typecheck(tree2, withMacrosDisabled = true)
c.Expr[String](Literal(Constant(ttree2.toString)))
}
diff --git a/test/files/run/macro-typecheck-macrosdisabled2.check b/test/files/run/macro-typecheck-macrosdisabled2.check
index 347dfec1dc..c6e1c08d5d 100644
--- a/test/files/run/macro-typecheck-macrosdisabled2.check
+++ b/test/files/run/macro-typecheck-macrosdisabled2.check
@@ -1,4 +1,4 @@
-{
+({
val $u: reflect.runtime.universe.type = scala.reflect.runtime.`package`.universe;
val $m: $u.Mirror = scala.reflect.runtime.`package`.universe.runtimeMirror(this.getClass().getClassLoader());
$u.Expr.apply[Array[Int]]($m, {
@@ -28,5 +28,5 @@
};
new $typecreator2()
}))
-}
+}: reflect.runtime.universe.Expr[Array[Int]])
ru.reify[Array[Int]](scala.Array.apply(2))
diff --git a/test/files/run/macro-typecheck-macrosdisabled2/Impls_Macros_1.scala b/test/files/run/macro-typecheck-macrosdisabled2/Impls_Macros_1.scala
index 3d12020109..d37a654957 100644
--- a/test/files/run/macro-typecheck-macrosdisabled2/Impls_Macros_1.scala
+++ b/test/files/run/macro-typecheck-macrosdisabled2/Impls_Macros_1.scala
@@ -6,7 +6,7 @@ object Macros {
val ru = Select(Select(Select(Select(Ident(TermName("scala")), TermName("reflect")), TermName("runtime")), TermName("package")), TermName("universe"))
val tree1 = Apply(Select(ru, TermName("reify")), List(Apply(Select(Ident(TermName("scala")), TermName("Array")), List(Literal(Constant(2))))))
- val ttree1 = c.typeCheck(tree1, withMacrosDisabled = false)
+ val ttree1 = c.typecheck(tree1, withMacrosDisabled = false)
c.Expr[String](Literal(Constant(ttree1.toString)))
}
@@ -22,7 +22,7 @@ object Macros {
build.setTypeSignature(ru, rutpe)
val tree2 = Apply(Select(Ident(ru), TermName("reify")), List(Apply(Select(Ident(TermName("scala")), TermName("Array")), List(Literal(Constant(2))))))
- val ttree2 = c.typeCheck(tree2, withMacrosDisabled = true)
+ val ttree2 = c.typecheck(tree2, withMacrosDisabled = true)
c.Expr[String](Literal(Constant(ttree2.toString)))
}
diff --git a/test/files/run/mutable-anyrefmap.scala b/test/files/run/mutable-anyrefmap.scala
deleted file mode 100644
index ff615d0daf..0000000000
--- a/test/files/run/mutable-anyrefmap.scala
+++ /dev/null
@@ -1,91 +0,0 @@
-object Test extends App {
-
- import scala.collection.mutable.HashMap;
- import scala.collection.mutable.AnyRefMap;
-
- val keys = Array(
- null, "perch", "herring", "salmon", "pike", "cod", ""
- )
-
- val rn = new scala.util.Random(42L)
- var arm = AnyRefMap.empty[String, Int]
- val hm = HashMap.empty[String, Int]
-
- def checkConsistent = hm.forall{ case (k,v) => arm.get(k).exists(_ == v) }
-
- assert {
- (0 to 10000).forall{ i =>
- val k = keys(rn.nextInt(keys.length))
- if (rn.nextInt(100) < 2) arm = arm.clone()
- if (rn.nextInt(100) < 5) arm.repack()
- if (rn.nextBoolean) {
- hm += ((k, i))
- rn.nextInt(6) match {
- case 0 => arm += ((k, i))
- case 1 => arm += (k, i)
- case 2 => arm(k) = i
- case 3 => arm.put(k,i)
- case 4 => arm ++= List((k,i))
- case _ => if (!arm.contains(k)) arm.getOrElseUpdate(k,i)
- else arm += (k,i)
- }
- }
- else {
- hm -= k
- rn.nextInt(2) match {
- case 0 => arm -= k
- case _ => arm --= List(k)
- }
- }
- checkConsistent
- }
- }
-
- assert {
- val mapped =
- arm.map{ case (k,v) => (if (k==null) "" else k+k) -> v.toString }
- mapped.getClass == arm.getClass
- }
-
- assert {
- val arm2 = new AnyRefMap[java.lang.Integer,Unit](2000000)
- for (i <- 0 until 1000000) arm2(java.lang.Integer.valueOf(i)) = ()
-
- arm2.size == 1000000 &&
- (0 to 1100000 by 100000).map(java.lang.Integer.valueOf).forall(i => (arm2 contains i) == i < 1000000)
- }
-
- arm = AnyRefMap("heron" -> 22, "dove" -> 5, "budgie" -> 0)
-
- assert{
- var s = ""
- arm.foreachKey(s += _)
-
- s.length == "herondovebudgie".length &&
- s.contains("heron") &&
- s.contains("dove") &&
- s.contains("budgie")
- }
-
- assert{ var s = 0L; arm.foreachValue(s += _); s == 27L }
-
- assert {
- val m2 = arm.mapValuesNow(_+2)
- arm.transformValues(_+2)
- m2 == arm && !(m2 eq arm) && (for ((_,v) <- arm) yield v).sum == 33L
- }
-
- assert {
- val arm2 = new AnyRefMap[String, String](x => if (x==null) "null" else x)
- arm2 += ("cod" -> "fish", "Rarity" -> "unicorn")
- val hm2 = (new HashMap[String,String]) ++= arm2
-
- List(null, "cod", "sparrow", "Rarity").forall(i =>
- arm2.get(i) == hm2.get(i) &&
- arm2.getOrElse(i, "") == hm2.getOrElse(i, "") &&
- arm2(i) == hm2.get(i).getOrElse(if (i==null) "null" else i.toString) &&
- arm2.getOrNull(i) == hm2.get(i).orNull
- )
- }
-}
-
diff --git a/test/files/run/mutable-longmap.scala b/test/files/run/mutable-longmap.scala
deleted file mode 100644
index 07fd80f6f0..0000000000
--- a/test/files/run/mutable-longmap.scala
+++ /dev/null
@@ -1,79 +0,0 @@
-object Test extends App {
-
- import scala.collection.mutable.HashMap;
- import scala.collection.mutable.LongMap;
-
- val keys = Array(
- Long.MinValue, Int.MinValue - 1L, Int.MinValue, -9127, -1,
- 0, 1, 9127, Int.MaxValue, Long.MaxValue
- )
-
- val rn = new scala.util.Random(42L)
- var lm = LongMap.empty[Long]
- val hm = HashMap.empty[Long,Long]
-
- def checkConsistent = hm.forall{ case (k,v) => lm.get(k).exists(_ == v) }
-
- assert {
- (0 to 10000).forall{ i =>
- val k = keys(rn.nextInt(keys.length))
- if (rn.nextInt(100) < 2) lm = lm.clone()
- if (rn.nextInt(100) < 5) lm.repack()
- if (rn.nextBoolean) {
- hm += ((k, i))
- rn.nextInt(6) match {
- case 0 => lm += ((k, i))
- case 1 => lm += (k, i)
- case 2 => lm(k) = i
- case 3 => lm.put(k,i)
- case 4 => lm ++= List((k,i))
- case _ => if (!lm.contains(k)) lm.getOrElseUpdate(k,i)
- else lm += (k,i)
- }
- }
- else {
- hm -= k
- rn.nextInt(2) match {
- case 0 => lm -= k
- case _ => lm --= List(k)
- }
- }
- checkConsistent
- }
- }
-
- assert {
- lm.map{ case (k,v) => -k*k -> v.toString }.getClass == lm.getClass
- }
-
- assert {
- val lm2 = new LongMap[Unit](2000000)
- for (i <- 0 until 1000000) lm2(i) = ()
-
- lm2.size == 1000000 &&
- (0 to 1100000 by 100000).forall(i => (lm2 contains i) == i < 1000000)
- }
-
- lm = LongMap(8L -> 22L, -5L -> 5L, Long.MinValue -> 0L)
-
- assert{ var s = 0L; lm.foreachKey(s += _); s == Long.MinValue + 3 }
- assert{ var s = 0L; lm.foreachValue(s += _); s == 27L }
- assert {
- val m2 = lm.mapValuesNow(_+2)
- lm.transformValues(_+2)
- m2 == lm && !(m2 eq lm) && (for ((_,v) <- lm) yield v).sum == 33L
- }
-
- assert {
- val lm2 = new LongMap[String](_.toString)
- lm2 += (5L -> "fish", 0L -> "unicorn")
- val hm2 = (new HashMap[Long,String]) ++= lm2
-
- List(Long.MinValue, 0L, 1L, 5L).forall(i =>
- lm2.get(i) == hm2.get(i) &&
- lm2.getOrElse(i, "") == hm2.getOrElse(i, "") &&
- lm2(i) == hm2.get(i).getOrElse(i.toString) &&
- lm2.getOrNull(i) == hm2.get(i).orNull
- )
- }
-}
diff --git a/test/files/run/reflection-mem-typecheck.scala b/test/files/run/reflection-mem-typecheck.scala
index a312c2c893..e3cabf689d 100644
--- a/test/files/run/reflection-mem-typecheck.scala
+++ b/test/files/run/reflection-mem-typecheck.scala
@@ -21,6 +21,6 @@ object Test extends MemoryTest {
foo(List(new A {}, new B {}))
""".trim
snippet = snippet + "\n" + (List.fill(50)(snippet.split("\n").last) mkString "\n")
- tb.typeCheck(tb.parse(snippet))
+ tb.typecheck(tb.parse(snippet))
}
} \ No newline at end of file
diff --git a/test/files/run/reify_ann1a.scala b/test/files/run/reify_ann1a.scala
index c23048e463..e3ff9e532d 100644
--- a/test/files/run/reify_ann1a.scala
+++ b/test/files/run/reify_ann1a.scala
@@ -20,7 +20,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_ann1b.scala b/test/files/run/reify_ann1b.scala
index 29ce6021a2..30bafadf75 100644
--- a/test/files/run/reify_ann1b.scala
+++ b/test/files/run/reify_ann1b.scala
@@ -20,7 +20,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_ann2a.scala b/test/files/run/reify_ann2a.scala
index 53423e12c3..515fba015f 100644
--- a/test/files/run/reify_ann2a.scala
+++ b/test/files/run/reify_ann2a.scala
@@ -20,7 +20,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_ann3.scala b/test/files/run/reify_ann3.scala
index 4162fa532f..7098e928a7 100644
--- a/test/files/run/reify_ann3.scala
+++ b/test/files/run/reify_ann3.scala
@@ -14,7 +14,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_ann4.scala b/test/files/run/reify_ann4.scala
index 0aedb77b5e..f6426213df 100644
--- a/test/files/run/reify_ann4.scala
+++ b/test/files/run/reify_ann4.scala
@@ -18,7 +18,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_ann5.scala b/test/files/run/reify_ann5.scala
index d27be3b6d5..5e2f058a39 100644
--- a/test/files/run/reify_ann5.scala
+++ b/test/files/run/reify_ann5.scala
@@ -15,7 +15,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_classfileann_a.scala b/test/files/run/reify_classfileann_a.scala
index 1d51688e78..9ae12bff82 100644
--- a/test/files/run/reify_classfileann_a.scala
+++ b/test/files/run/reify_classfileann_a.scala
@@ -14,7 +14,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_classfileann_b.scala b/test/files/run/reify_classfileann_b.scala
index ef19e9240b..a0cb8f0b49 100644
--- a/test/files/run/reify_classfileann_b.scala
+++ b/test/files/run/reify_classfileann_b.scala
@@ -18,7 +18,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/reify_renamed_term_si5841.check b/test/files/run/reify_renamed_term_t5841.check
index 6031277b76..6031277b76 100644
--- a/test/files/run/reify_renamed_term_si5841.check
+++ b/test/files/run/reify_renamed_term_t5841.check
diff --git a/test/files/run/reify_renamed_term_si5841.scala b/test/files/run/reify_renamed_term_t5841.scala
index ef18d650bf..ef18d650bf 100644
--- a/test/files/run/reify_renamed_term_si5841.scala
+++ b/test/files/run/reify_renamed_term_t5841.scala
diff --git a/test/files/run/resetattrs-this.scala b/test/files/run/resetattrs-this.scala
index 2a55437273..6150a4e265 100644
--- a/test/files/run/resetattrs-this.scala
+++ b/test/files/run/resetattrs-this.scala
@@ -5,7 +5,7 @@ import scala.tools.reflect.ToolBox
object Test extends App {
val tb = cm.mkToolBox()
val tree = Select(This(cm.staticPackage("scala").moduleClass), TermName("Predef"))
- val ttree = tb.typeCheck(tree)
+ val ttree = tb.typecheck(tree)
val rttree = tb.resetAllAttrs(ttree)
println(tb.eval(rttree) == Predef)
}
diff --git a/test/files/run/showraw_aliases.scala b/test/files/run/showraw_aliases.scala
index 65b4fcb1cd..56bd13707d 100644
--- a/test/files/run/showraw_aliases.scala
+++ b/test/files/run/showraw_aliases.scala
@@ -7,7 +7,7 @@ object Test extends App {
import scala.reflect.runtime.{universe => ru}
ru
""")
- val ttree = tb.typeCheck(tree)
+ val ttree = tb.typecheck(tree)
def stabilizeIds(s: String) = """#\d+""".r.replaceAllIn(s, "#<id>")
def stabilizePositions(s: String) = """\d+""".r.replaceAllIn(s, "<offset>")
diff --git a/test/files/run/showraw_tree_types_ids.scala b/test/files/run/showraw_tree_types_ids.scala
index 198729e705..883af0110a 100644
--- a/test/files/run/showraw_tree_types_ids.scala
+++ b/test/files/run/showraw_tree_types_ids.scala
@@ -6,6 +6,6 @@ object Test extends App {
val tree1 = reify(new collection.immutable.HashMap[String, String])
val tree2 = reify(new collection.mutable.HashMap[String, String])
def stabilize(s: String) = """#\d+""".r.replaceAllIn(s, "#<id>")
- println(stabilize(showRaw(tb.typeCheck(tree1.tree), printIds = true, printTypes = true)))
- println(stabilize(showRaw(tb.typeCheck(tree2.tree), printIds = true, printTypes = true)))
+ println(stabilize(showRaw(tb.typecheck(tree1.tree), printIds = true, printTypes = true)))
+ println(stabilize(showRaw(tb.typecheck(tree2.tree), printIds = true, printTypes = true)))
} \ No newline at end of file
diff --git a/test/files/run/showraw_tree_types_typed.scala b/test/files/run/showraw_tree_types_typed.scala
index d7ccc84ea3..3dd696c77e 100644
--- a/test/files/run/showraw_tree_types_typed.scala
+++ b/test/files/run/showraw_tree_types_typed.scala
@@ -5,6 +5,6 @@ object Test extends App {
val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
val tree1 = reify(new collection.immutable.HashMap[String, String])
val tree2 = reify(new collection.mutable.HashMap[String, String])
- println(showRaw(tb.typeCheck(tree1.tree), printTypes = true))
- println(showRaw(tb.typeCheck(tree2.tree), printTypes = true))
+ println(showRaw(tb.typecheck(tree1.tree), printTypes = true))
+ println(showRaw(tb.typecheck(tree2.tree), printTypes = true))
} \ No newline at end of file
diff --git a/test/files/run/showraw_tree_ultimate.scala b/test/files/run/showraw_tree_ultimate.scala
index a8507623bc..e0d36e6bb7 100644
--- a/test/files/run/showraw_tree_ultimate.scala
+++ b/test/files/run/showraw_tree_ultimate.scala
@@ -6,6 +6,6 @@ object Test extends App {
val tree1 = reify(new collection.immutable.HashMap[String, String])
val tree2 = reify(new collection.mutable.HashMap[String, String])
def stabilize(s: String) = """#\d+""".r.replaceAllIn(s, "#<id>")
- println(stabilize(showRaw(tb.typeCheck(tree1.tree), printIds = true, printKinds = true, printTypes = true)))
- println(stabilize(showRaw(tb.typeCheck(tree2.tree), printIds = true, printKinds = true, printTypes = true)))
+ println(stabilize(showRaw(tb.typecheck(tree1.tree), printIds = true, printKinds = true, printTypes = true)))
+ println(stabilize(showRaw(tb.typecheck(tree2.tree), printIds = true, printKinds = true, printTypes = true)))
} \ No newline at end of file
diff --git a/test/files/run/si4750.check b/test/files/run/t4750.check
index bf55f70df3..bf55f70df3 100644
--- a/test/files/run/si4750.check
+++ b/test/files/run/t4750.check
diff --git a/test/files/run/si4750.scala b/test/files/run/t4750.scala
index 96d2c4fec7..96d2c4fec7 100644
--- a/test/files/run/si4750.scala
+++ b/test/files/run/t4750.scala
diff --git a/test/files/run/si5045.check b/test/files/run/t5045.check
index 7e9c1961b7..7e9c1961b7 100644
--- a/test/files/run/si5045.check
+++ b/test/files/run/t5045.check
diff --git a/test/files/run/si5045.scala b/test/files/run/t5045.scala
index b0c3a4ddc4..b0c3a4ddc4 100644
--- a/test/files/run/si5045.scala
+++ b/test/files/run/t5045.scala
diff --git a/test/files/run/t5415.scala b/test/files/run/t5415.scala
index c12e209bb7..65de86245b 100644
--- a/test/files/run/t5415.scala
+++ b/test/files/run/t5415.scala
@@ -8,5 +8,5 @@ object Test extends App{
import scala.reflect.runtime.{currentMirror => cm}
import scala.tools.reflect.ToolBox
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(code.tree)
+ val ttree = toolbox.typecheck(code.tree)
}
diff --git a/test/files/run/t5418b.scala b/test/files/run/t5418b.scala
index 08e8bb163b..c6172613d5 100644
--- a/test/files/run/t5418b.scala
+++ b/test/files/run/t5418b.scala
@@ -5,7 +5,7 @@ import scala.tools.reflect.ToolBox
object Test extends App {
val tb = cm.mkToolBox()
val untyped = reify(new Object().getClass).tree
- val typed = tb.typeCheck(untyped)
+ val typed = tb.typecheck(untyped)
println(typed)
println(showRaw(typed.tpe))
} \ No newline at end of file
diff --git a/test/files/run/t5704.scala b/test/files/run/t5704.scala
index ddcbcc27b3..495a82e4f0 100644
--- a/test/files/run/t5704.scala
+++ b/test/files/run/t5704.scala
@@ -8,7 +8,7 @@ object Test extends App {
def findUserByName( name:String ) = {
val tree = reify{ "test" == name }.tree
val toolbox = cm.mkToolBox()
- toolbox.typeCheck(tree) match{
+ toolbox.typecheck(tree) match{
case Apply(Select(lhs,op),rhs::Nil) =>
println(rhs.tpe)
}
diff --git a/test/files/run/t5816.scala b/test/files/run/t5816.scala
index f0279e5703..e8367ea81e 100644
--- a/test/files/run/t5816.scala
+++ b/test/files/run/t5816.scala
@@ -6,7 +6,7 @@ object Test extends App {
val toolbox = cm.mkToolBox()
def printSource[T](expr: Expr[T]) {
- val ttree = toolbox typeCheck expr.tree
+ val ttree = toolbox typecheck expr.tree
println(ttree.toString)
}
diff --git a/test/files/run/t5912.scala b/test/files/run/t5912.scala
index 9418e946d0..fc879a0537 100644
--- a/test/files/run/t5912.scala
+++ b/test/files/run/t5912.scala
@@ -3,5 +3,5 @@ object Test extends App{
import scala.reflect.runtime.{currentMirror=>cm}
import scala.tools.reflect._
import scala.reflect.runtime.universe._
- val tree = cm.mkToolBox().typeCheck( Literal(Constant("test")) )
+ val tree = cm.mkToolBox().typecheck( Literal(Constant("test")) )
}
diff --git a/test/files/run/t5943a1.scala b/test/files/run/t5943a1.scala
index 00f4afa808..6bb828de85 100644
--- a/test/files/run/t5943a1.scala
+++ b/test/files/run/t5943a1.scala
@@ -5,5 +5,5 @@ import scala.tools.reflect.ToolBox
object Test extends App {
val tb = cm.mkToolBox()
val expr = tb.parse("1 to 3 map (_+1)")
- println(tb.typeCheck(expr))
+ println(tb.typecheck(expr))
} \ No newline at end of file
diff --git a/test/files/run/t6023.scala b/test/files/run/t6023.scala
index 07af3685a5..2753b93ac4 100644
--- a/test/files/run/t6023.scala
+++ b/test/files/run/t6023.scala
@@ -9,7 +9,7 @@ object Test extends App {
// test 2: import and typecheck
val toolbox = cm.mkToolBox()
- val ttree = toolbox.typeCheck(tree)
+ val ttree = toolbox.typecheck(tree)
println(ttree.toString)
// test 3: import and compile
diff --git a/test/files/run/t6355.check b/test/files/run/t6355.check
new file mode 100644
index 0000000000..ce74ab38a2
--- /dev/null
+++ b/test/files/run/t6355.check
@@ -0,0 +1,2 @@
+bippy(x: Int) called with x = 42
+bippy(x: String) called with x = "42"
diff --git a/test/files/run/t6355.scala b/test/files/run/t6355.scala
new file mode 100644
index 0000000000..f1921391a3
--- /dev/null
+++ b/test/files/run/t6355.scala
@@ -0,0 +1,17 @@
+import scala.language.dynamics
+
+class A extends Dynamic {
+ def applyDynamic(method: String): B = new B(method)
+}
+class B(method: String) {
+ def apply(x: Int) = s"$method(x: Int) called with x = $x"
+ def apply(x: String) = s"""$method(x: String) called with x = "$x""""
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val x = new A
+ println(x.bippy(42))
+ println(x.bippy("42"))
+ }
+}
diff --git a/test/files/run/t6392b.scala b/test/files/run/t6392b.scala
index f69a5aaf45..e43c1a2b03 100644
--- a/test/files/run/t6392b.scala
+++ b/test/files/run/t6392b.scala
@@ -5,5 +5,5 @@ import scala.tools.reflect.ToolBox
object Test extends App {
val tb = cm.mkToolBox()
val c = tb.parse("object C")
- println(showRaw(tb.typeCheck(c), printKinds = true))
+ println(showRaw(tb.typecheck(c), printKinds = true))
} \ No newline at end of file
diff --git a/test/files/run/t7185.check b/test/files/run/t7185.check
index 38449b3497..ebf85b731f 100644
--- a/test/files/run/t7185.check
+++ b/test/files/run/t7185.check
@@ -21,7 +21,7 @@ tree: reflect.runtime.universe.Apply =
}
}()
-scala> {val tb = reflect.runtime.currentMirror.mkToolBox(); tb.typeCheck(tree): Any}
+scala> {val tb = reflect.runtime.currentMirror.mkToolBox(); tb.typecheck(tree): Any}
res0: Any =
{
{
diff --git a/test/files/run/t7185.scala b/test/files/run/t7185.scala
index d9d913e78a..62d64246bc 100644
--- a/test/files/run/t7185.scala
+++ b/test/files/run/t7185.scala
@@ -7,6 +7,6 @@ import scala.reflect.runtime.universe._
object O { def apply() = 0 }
val ORef = reify { O }.tree
val tree = Apply(Block(Nil, Block(Nil, ORef)), Nil)
-{val tb = reflect.runtime.currentMirror.mkToolBox(); tb.typeCheck(tree): Any}
+{val tb = reflect.runtime.currentMirror.mkToolBox(); tb.typecheck(tree): Any}
"""
}
diff --git a/test/files/run/t7406.check b/test/files/run/t7406.check
new file mode 100644
index 0000000000..f599e28b8a
--- /dev/null
+++ b/test/files/run/t7406.check
@@ -0,0 +1 @@
+10
diff --git a/test/files/run/t7406.scala b/test/files/run/t7406.scala
new file mode 100644
index 0000000000..a8b35c91c9
--- /dev/null
+++ b/test/files/run/t7406.scala
@@ -0,0 +1,14 @@
+class Arne[@specialized(Long) T](x: T) {
+ val regularVal = x
+ lazy val lazyVal = x
+
+ def apply(f: (T, T) => T): T = f(regularVal, lazyVal)
+}
+
+object Test {
+ val arne = new Arne(5L)
+ def f = arne(_ + _)
+ def main(args: Array[String]): Unit = {
+ println(f)
+ }
+}
diff --git a/test/files/run/t7777.check b/test/files/run/t7777.check
new file mode 100644
index 0000000000..162ff2d2a2
--- /dev/null
+++ b/test/files/run/t7777.check
@@ -0,0 +1,7 @@
+foo(1, 2)
+bar(4, 5)
+foo(3)
+bar(7)
+apply(6)
+apply(9)
+foo(8)
diff --git a/test/files/run/t7777/Macros_1.scala b/test/files/run/t7777/Macros_1.scala
new file mode 100644
index 0000000000..459ab3edbb
--- /dev/null
+++ b/test/files/run/t7777/Macros_1.scala
@@ -0,0 +1,17 @@
+import scala.language.experimental.macros
+import scala.language.dynamics
+import scala.reflect.macros.WhiteboxContext
+
+class DynMacro extends Dynamic {
+ def applyDynamic(s: String)(xs: Any*): DynMacro =
+ macro DynMacro.applyDynamicMacro
+}
+
+object DynMacro extends DynMacro {
+ def applyDynamicMacro(c: WhiteboxContext)(s: c.Expr[String])(xs: c.Expr[Any]*): c.Expr[DynMacro] = {
+ import c.universe._
+ val Literal(Constant(n: String)) = s.tree
+ val args = xs.map(_.tree.toString).mkString("(", ", ", ")")
+ c.Expr(q"println(${ n + args }); ${c.prefix.tree}")
+ }
+} \ No newline at end of file
diff --git a/test/files/run/t7777/Test_2.scala b/test/files/run/t7777/Test_2.scala
new file mode 100644
index 0000000000..1fe8b63bab
--- /dev/null
+++ b/test/files/run/t7777/Test_2.scala
@@ -0,0 +1,6 @@
+object Test extends App {
+ DynMacro.foo(1, 2) // prints "foo(1, 2)"
+ DynMacro.foo(3).bar(4, 5) // prints "bar(4, 5)", then "foo(3)"
+ DynMacro(6).bar(7) // prints "bar(7)", then "apply(6)"
+ DynMacro.foo(8)(9) // Fails!
+} \ No newline at end of file
diff --git a/test/files/run/t7880.scala b/test/files/run/t7880.scala
new file mode 100644
index 0000000000..9fbc337f87
--- /dev/null
+++ b/test/files/run/t7880.scala
@@ -0,0 +1,7 @@
+object Test extends App {
+ // This should terminate in one way or another, but it shouldn't loop forever.
+ try {
+ val buffer = collection.mutable.ArrayBuffer.fill(Int.MaxValue / 2 + 1)(0)
+ buffer append 1
+ } catch { case _: OutOfMemoryError => }
+}
diff --git a/test/files/run/t8017.flags b/test/files/run/t8017.flags
new file mode 100644
index 0000000000..48b438ddf8
--- /dev/null
+++ b/test/files/run/t8017.flags
@@ -0,0 +1 @@
+-Ydelambdafy:method
diff --git a/test/files/run/t8017/value-class-lambda.scala b/test/files/run/t8017/value-class-lambda.scala
new file mode 100644
index 0000000000..370023b194
--- /dev/null
+++ b/test/files/run/t8017/value-class-lambda.scala
@@ -0,0 +1,40 @@
+object Test {
+ def testC {
+ val f1 = (c: C) => c.value
+ val f2 = (x: Int) => new C(x)
+ val f3 = (c1: C) => (c2: C) => (c1, c2)
+ val r1 = f2(2)
+ val r2 = f2(2)
+ val r3 = f3(r1)(r2)
+ val result = f1(r3._2)
+ assert(result == 2)
+ }
+
+ def testD {
+ val f1 = (c: D) => c.value
+ val f2 = (x: String) => new D(x)
+ val f3 = (c1: D) => (c2: D) => (c1, c2)
+ val r1 = f2("2")
+ val r2 = f2("2")
+ val r3 = f3(r1)(r2)
+ val result = f1(r3._2)
+ assert(result == "2")
+ }
+
+ def testE {
+ val f1 = (c: E[Int]) => c.value
+ val f2 = (x: Int) => new E(x)
+ val f3 = (c1: E[Int]) => (c2: E[Int]) => (c1, c2)
+ val r1 = f2(2)
+ val r2 = f2(2)
+ val r3 = f3(r1)(r2)
+ val result = f1(r3._2)
+ assert(result == 2)
+ }
+
+ def main(args: Array[String]) {
+ testC
+ testD
+ testE
+ }
+}
diff --git a/test/files/run/t8017/value-class.scala b/test/files/run/t8017/value-class.scala
new file mode 100644
index 0000000000..821239305f
--- /dev/null
+++ b/test/files/run/t8017/value-class.scala
@@ -0,0 +1,3 @@
+class C(val value: Int) extends AnyVal
+class D(val value: String) extends AnyVal
+class E[A](val value: A) extends AnyVal
diff --git a/test/files/run/t8047.check b/test/files/run/t8047.check
new file mode 100644
index 0000000000..a6b83a4a16
--- /dev/null
+++ b/test/files/run/t8047.check
@@ -0,0 +1,7 @@
+doWhile$1(){
+ 1;
+ if (true)
+ doWhile$1()
+ else
+ ()
+}
diff --git a/test/files/run/t8047.scala b/test/files/run/t8047.scala
new file mode 100644
index 0000000000..f5660541e8
--- /dev/null
+++ b/test/files/run/t8047.scala
@@ -0,0 +1,31 @@
+object Test extends App {
+ import scala.reflect.runtime.universe._
+ //
+ // x's owner is outer Test scope. Previosly the quasiquote expansion
+ // looked like:
+ //
+ // object Test {
+ // build.withFreshTermName("doWhile")(n =>
+ // LabelDef(n, List(),
+ // Block(
+ // List({ val x = 1; x }),
+ // If(Literal(Constant(true)), Apply(Ident(n), List()), Literal(Constant(())))))
+ // }
+ //
+ // Here the proper owner is anonymous function, not the Test. Hence
+ // symbol corruption. In new encoding this is represented as:
+ //
+ // object Test {
+ // {
+ // val n = build.freshTermName("doWhile")
+ // LabelDef(n, List(),
+ // Block(
+ // List({ val x = 1; x }),
+ // If(Literal(Constant(true)), Apply(Ident(n), List()), Literal(Constant(()))))
+ // }
+ // }
+ //
+ // Owner stays the same and life is good again.
+ //
+ println(q"do ${ val x = 1; x } while(true)")
+}
diff --git a/test/files/run/t8091.check b/test/files/run/t8091.check
new file mode 100644
index 0000000000..4c4e91774f
--- /dev/null
+++ b/test/files/run/t8091.check
@@ -0,0 +1 @@
+b&#x00f6;rk b&#x00f6;rk
diff --git a/test/files/run/t8091.scala b/test/files/run/t8091.scala
new file mode 100644
index 0000000000..cd412d4c2a
--- /dev/null
+++ b/test/files/run/t8091.scala
@@ -0,0 +1,4 @@
+object Test extends App {
+ val result = "börk börk" flatMap (ch ⇒ if (ch > 127) f"&#x${ch}%04x;" else "" + ch)
+ println(result)
+} \ No newline at end of file
diff --git a/test/files/run/t8104.check b/test/files/run/t8104.check
new file mode 100644
index 0000000000..c2593eb199
--- /dev/null
+++ b/test/files/run/t8104.check
@@ -0,0 +1 @@
+TypeTag[(Int, Int)]
diff --git a/test/files/run/t8104/Macros_1.scala b/test/files/run/t8104/Macros_1.scala
new file mode 100644
index 0000000000..21d81a3687
--- /dev/null
+++ b/test/files/run/t8104/Macros_1.scala
@@ -0,0 +1,11 @@
+import scala.reflect.macros.WhiteboxContext
+
+object Macros {
+ def impl[T](c: WhiteboxContext)(implicit T: c.WeakTypeTag[T]) = {
+ import c.universe._
+ import definitions._
+ val fields = T.tpe.declarations.toList.collect{ case x: TermSymbol if x.isVal && x.isCaseAccessor => x }
+ val Repr = appliedType(TupleClass(fields.length).asType.toType, fields.map(_.typeSignature))
+ q"new Generic[$T]{ type Repr = $Repr }"
+ }
+} \ No newline at end of file
diff --git a/test/files/run/t8104/Test_2.scala b/test/files/run/t8104/Test_2.scala
new file mode 100644
index 0000000000..630176f175
--- /dev/null
+++ b/test/files/run/t8104/Test_2.scala
@@ -0,0 +1,16 @@
+trait Generic[T] { type Repr }
+object Generic {
+ type Aux[T, Repr0] = Generic[T] { type Repr = Repr0 }
+ import scala.language.experimental.macros
+ implicit def materializeGeneric[T, Repr]: Generic.Aux[T, Repr] = macro Macros.impl[T]
+}
+
+object Test extends App {
+ case class C(x: Int, y: Int)
+
+ import scala.reflect.runtime.universe._
+ def reprify[T, Repr](x: T)(implicit generic: Generic.Aux[T, Repr], tag: TypeTag[Repr]) = println(tag)
+ reprify(C(40, 2))
+
+ implicitly[Generic.Aux[C, (Int, Int)]]
+}
diff --git a/test/files/run/toolbox_typecheck_implicitsdisabled.scala b/test/files/run/toolbox_typecheck_implicitsdisabled.scala
index 95a7056279..8c1a6e580c 100644
--- a/test/files/run/toolbox_typecheck_implicitsdisabled.scala
+++ b/test/files/run/toolbox_typecheck_implicitsdisabled.scala
@@ -10,7 +10,7 @@ object Test extends App {
Import(Select(Ident(TermName("scala")), TermName("Predef")), List(ImportSelector(nme.WILDCARD, -1, null, -1)))),
Apply(Select(Literal(Constant(1)), TermName("$minus$greater")), List(Literal(Constant(2))))
)
- val ttree1 = toolbox.typeCheck(tree1, withImplicitViewsDisabled = false)
+ val ttree1 = toolbox.typecheck(tree1, withImplicitViewsDisabled = false)
println(ttree1)
try {
@@ -18,7 +18,7 @@ object Test extends App {
Import(Select(Ident(TermName("scala")), TermName("Predef")), List(ImportSelector(nme.WILDCARD, -1, null, -1)))),
Apply(Select(Literal(Constant(1)), TermName("$minus$greater")), List(Literal(Constant(2))))
)
- val ttree2 = toolbox.typeCheck(tree2, withImplicitViewsDisabled = true)
+ val ttree2 = toolbox.typecheck(tree2, withImplicitViewsDisabled = true)
println(ttree2)
} catch {
case ex: Throwable =>
diff --git a/test/files/run/toolbox_typecheck_macrosdisabled.check b/test/files/run/toolbox_typecheck_macrosdisabled.check
index 3de296f1ad..d9e79cdd19 100644
--- a/test/files/run/toolbox_typecheck_macrosdisabled.check
+++ b/test/files/run/toolbox_typecheck_macrosdisabled.check
@@ -1,4 +1,4 @@
-{
+({
val $u: ru.type = ru;
val $m: $u.Mirror = ru.runtimeMirror({
final class $anon extends scala.AnyRef {
@@ -37,5 +37,5 @@
};
new $typecreator2()
}))
-}
+}: ru.Expr[Int])
ru.reify[Int](2)
diff --git a/test/files/run/toolbox_typecheck_macrosdisabled.scala b/test/files/run/toolbox_typecheck_macrosdisabled.scala
index 1f7fda8575..4cbeefd6e0 100644
--- a/test/files/run/toolbox_typecheck_macrosdisabled.scala
+++ b/test/files/run/toolbox_typecheck_macrosdisabled.scala
@@ -16,10 +16,10 @@ object Test extends App {
build.setTypeSignature(ru, rutpe)
val tree1 = Apply(Select(Ident(ru), TermName("reify")), List(Literal(Constant(2))))
- val ttree1 = toolbox.typeCheck(tree1, withMacrosDisabled = false)
+ val ttree1 = toolbox.typecheck(tree1, withMacrosDisabled = false)
println(ttree1)
val tree2 = Apply(Select(Ident(ru), TermName("reify")), List(Literal(Constant(2))))
- val ttree2 = toolbox.typeCheck(tree2, withMacrosDisabled = true)
+ val ttree2 = toolbox.typecheck(tree2, withMacrosDisabled = true)
println(ttree2)
}
diff --git a/test/files/run/toolbox_typecheck_macrosdisabled2.check b/test/files/run/toolbox_typecheck_macrosdisabled2.check
index 9810946024..8e554a6c8f 100644
--- a/test/files/run/toolbox_typecheck_macrosdisabled2.check
+++ b/test/files/run/toolbox_typecheck_macrosdisabled2.check
@@ -1,4 +1,4 @@
-{
+({
val $u: ru.type = ru;
val $m: $u.Mirror = ru.runtimeMirror({
final class $anon extends scala.AnyRef {
@@ -37,5 +37,5 @@
};
new $typecreator2()
}))
-}
+}: ru.Expr[Array[Int]])
ru.reify[Array[Int]](scala.Array.apply(2))
diff --git a/test/files/run/toolbox_typecheck_macrosdisabled2.scala b/test/files/run/toolbox_typecheck_macrosdisabled2.scala
index 7bfe3ba8a4..2fbd8f7c7a 100644
--- a/test/files/run/toolbox_typecheck_macrosdisabled2.scala
+++ b/test/files/run/toolbox_typecheck_macrosdisabled2.scala
@@ -16,10 +16,10 @@ object Test extends App {
build.setTypeSignature(ru, rutpe)
val tree1 = Apply(Select(Ident(ru), TermName("reify")), List(Apply(Select(Ident(TermName("scala")), TermName("Array")), List(Literal(Constant(2))))))
- val ttree1 = toolbox.typeCheck(tree1, withMacrosDisabled = false)
+ val ttree1 = toolbox.typecheck(tree1, withMacrosDisabled = false)
println(ttree1)
val tree2 = Apply(Select(Ident(ru), TermName("reify")), List(Apply(Select(Ident(TermName("scala")), TermName("Array")), List(Literal(Constant(2))))))
- val ttree2 = toolbox.typeCheck(tree2, withMacrosDisabled = true)
+ val ttree2 = toolbox.typecheck(tree2, withMacrosDisabled = true)
println(ttree2)
}