summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/run/code.check7
-rw-r--r--test/files/run/reify_complex.check (renamed from test/pending/run/reify_complex.check)0
-rw-r--r--test/files/run/reify_complex.scala (renamed from test/pending/run/reify_complex.scala)0
-rw-r--r--test/files/run/reify_extendbuiltins.check (renamed from test/pending/run/reify_extendbuiltins.check)0
-rw-r--r--test/files/run/reify_extendbuiltins.scala (renamed from test/pending/run/reify_extendbuiltins.scala)0
-rw-r--r--test/files/run/reify_generic2.check1
-rw-r--r--test/files/run/reify_generic2.scala16
-rw-r--r--test/files/run/reify_getter.check1
-rw-r--r--test/files/run/reify_getter.scala19
-rw-r--r--test/files/run/reify_sort1.check (renamed from test/pending/run/reify_sort1.check)0
-rw-r--r--test/files/run/reify_sort1.scala (renamed from test/pending/run/reify_sort1.scala)0
-rw-r--r--test/files/run/t5269.check (renamed from test/pending/run/t5269.check)0
-rw-r--r--test/files/run/t5269.scala (renamed from test/pending/run/t5269.scala)0
-rw-r--r--test/files/run/t5274_1.check (renamed from test/pending/run/t5274_1.check)0
-rw-r--r--test/files/run/t5274_1.scala (renamed from test/pending/run/t5274_1.scala)0
-rw-r--r--test/files/run/t5275.check (renamed from test/pending/run/t5275.check)0
-rw-r--r--test/files/run/t5275.scala (renamed from test/pending/run/t5275.scala)0
-rw-r--r--test/files/run/t5277_1.check (renamed from test/pending/run/t5277_1.check)0
-rw-r--r--test/files/run/t5277_1.scala (renamed from test/pending/run/t5277_1.scala)0
-rw-r--r--test/files/run/t5277_2.check2
-rw-r--r--test/files/run/t5277_2.scala (renamed from test/pending/run/t5277_2.scala)0
-rw-r--r--test/files/run/t5335.check (renamed from test/pending/run/t5277_2.check)1
-rw-r--r--test/files/run/t5335.scala14
-rw-r--r--test/pending/run/reify_closure6.check6
-rw-r--r--test/pending/run/reify_closure6.scala2
-rw-r--r--test/pending/run/reify_closure7.check6
-rw-r--r--test/pending/run/reify_closure7.scala32
-rw-r--r--test/pending/run/reify_closure8a.check1
-rw-r--r--test/pending/run/reify_closure8a.scala17
-rw-r--r--test/pending/run/reify_closure8b.check1
-rw-r--r--test/pending/run/reify_closure8b.scala17
-rw-r--r--test/pending/run/reify_closure9a.check1
-rw-r--r--test/pending/run/reify_closure9a.scala20
-rw-r--r--test/pending/run/reify_closure9b.check1
-rw-r--r--test/pending/run/reify_closure9b.scala20
-rw-r--r--test/pending/run/reify_closures10.check2
-rw-r--r--test/pending/run/reify_closures10.scala15
-rw-r--r--test/pending/run/reify_closures11.check1
-rw-r--r--test/pending/run/reify_closures11.scala18
-rw-r--r--test/pending/run/reify_this.check5
-rw-r--r--test/pending/run/reify_this.scala31
-rw-r--r--test/pending/run/t5415.check0
-rw-r--r--test/pending/run/t5415.scala14
43 files changed, 269 insertions, 2 deletions
diff --git a/test/files/run/code.check b/test/files/run/code.check
index b946554fda..9b0351bbf9 100644
--- a/test/files/run/code.check
+++ b/test/files/run/code.check
@@ -1,29 +1,36 @@
testing: ((x: Int) => x.$plus(ys.length))
+type is: Int => Int
result = ((x: Int) => x.+{(x: <?>)Int}(ys.length{Int}){Int}){Int => Int}
evaluated = <function1>
testing: (() => {
val e: Element = new Element("someName");
e
})
+type is: () => Element
result = (() => {
val e: Element = new Element{Element}{(name: <?>)Element}("someName"{String("someName")}){Element};
e{Element}
}{Element}){() => Element}
evaluated = Element(someName)
testing: (() => truc.elem = 6)
+type is: () => Unit
result = (() => truc.elem{Int} = 6{Int(6)}{Unit}){() => Unit}
evaluated = null
testing: (() => truc.elem = truc.elem.$plus(6))
+type is: () => Unit
result = (() => truc.elem{Int} = truc.elem.+{(x: <?>)Int}(6{Int(6)}){Int}{Unit}){() => Unit}
evaluated = null
testing: (() => new baz.BazElement("someName"))
+type is: () => baz.BazElement
result = (() => new baz.BazElement{baz.BazElement}{(name: <?>)baz.BazElement}("someName"{String("someName")}){baz.BazElement}){() => baz.BazElement}
evaluated = BazElement(someName)
testing: ((x: Int) => x.$plus(ys.length))
+type is: Int => Int
result = ((x: Int) => x.+{(x: <?>)Int}(ys.length{Int}){Int}){Int => Int}
evaluated = <function1>
static: 2
testing: (() => x.$plus(1))
+type is: () => Int
result = (() => x.+{(x: <?>)Int}(1{Int(1)}){Int}){() => Int}
evaluated = 2
1+1 = 2
diff --git a/test/pending/run/reify_complex.check b/test/files/run/reify_complex.check
index 7df35e33a0..7df35e33a0 100644
--- a/test/pending/run/reify_complex.check
+++ b/test/files/run/reify_complex.check
diff --git a/test/pending/run/reify_complex.scala b/test/files/run/reify_complex.scala
index aae4d558cf..aae4d558cf 100644
--- a/test/pending/run/reify_complex.scala
+++ b/test/files/run/reify_complex.scala
diff --git a/test/pending/run/reify_extendbuiltins.check b/test/files/run/reify_extendbuiltins.check
index a48033a30d..a48033a30d 100644
--- a/test/pending/run/reify_extendbuiltins.check
+++ b/test/files/run/reify_extendbuiltins.check
diff --git a/test/pending/run/reify_extendbuiltins.scala b/test/files/run/reify_extendbuiltins.scala
index 57acd699ff..57acd699ff 100644
--- a/test/pending/run/reify_extendbuiltins.scala
+++ b/test/files/run/reify_extendbuiltins.scala
diff --git a/test/files/run/reify_generic2.check b/test/files/run/reify_generic2.check
new file mode 100644
index 0000000000..b8626c4cff
--- /dev/null
+++ b/test/files/run/reify_generic2.check
@@ -0,0 +1 @@
+4
diff --git a/test/files/run/reify_generic2.scala b/test/files/run/reify_generic2.scala
new file mode 100644
index 0000000000..d03fe7602b
--- /dev/null
+++ b/test/files/run/reify_generic2.scala
@@ -0,0 +1,16 @@
+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
+ val product = List(new C, new C).length * List[C](new C, new C).length
+ println(product)
+ };
+
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(code.tree)
+ toolbox.runExpr(ttree)
+}
diff --git a/test/files/run/reify_getter.check b/test/files/run/reify_getter.check
new file mode 100644
index 0000000000..5ef4ff4d04
--- /dev/null
+++ b/test/files/run/reify_getter.check
@@ -0,0 +1 @@
+evaluated = 2
diff --git a/test/files/run/reify_getter.scala b/test/files/run/reify_getter.scala
new file mode 100644
index 0000000000..83eaded506
--- /dev/null
+++ b/test/files/run/reify_getter.scala
@@ -0,0 +1,19 @@
+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 {
+ val x = 2
+ }
+
+ new 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/reify_sort1.check b/test/files/run/reify_sort1.check
index 0d30805141..0d30805141 100644
--- a/test/pending/run/reify_sort1.check
+++ b/test/files/run/reify_sort1.check
diff --git a/test/pending/run/reify_sort1.scala b/test/files/run/reify_sort1.scala
index 42f4c824a5..42f4c824a5 100644
--- a/test/pending/run/reify_sort1.scala
+++ b/test/files/run/reify_sort1.scala
diff --git a/test/pending/run/t5269.check b/test/files/run/t5269.check
index 0cfbf08886..0cfbf08886 100644
--- a/test/pending/run/t5269.check
+++ b/test/files/run/t5269.check
diff --git a/test/pending/run/t5269.scala b/test/files/run/t5269.scala
index a30509f3fe..a30509f3fe 100644
--- a/test/pending/run/t5269.scala
+++ b/test/files/run/t5269.scala
diff --git a/test/pending/run/t5274_1.check b/test/files/run/t5274_1.check
index fca8bc3d3e..fca8bc3d3e 100644
--- a/test/pending/run/t5274_1.check
+++ b/test/files/run/t5274_1.check
diff --git a/test/pending/run/t5274_1.scala b/test/files/run/t5274_1.scala
index c501172518..c501172518 100644
--- a/test/pending/run/t5274_1.scala
+++ b/test/files/run/t5274_1.scala
diff --git a/test/pending/run/t5275.check b/test/files/run/t5275.check
index 0cfbf08886..0cfbf08886 100644
--- a/test/pending/run/t5275.check
+++ b/test/files/run/t5275.check
diff --git a/test/pending/run/t5275.scala b/test/files/run/t5275.scala
index d419834ded..d419834ded 100644
--- a/test/pending/run/t5275.scala
+++ b/test/files/run/t5275.scala
diff --git a/test/pending/run/t5277_1.check b/test/files/run/t5277_1.check
index a48033a30d..a48033a30d 100644
--- a/test/pending/run/t5277_1.check
+++ b/test/files/run/t5277_1.check
diff --git a/test/pending/run/t5277_1.scala b/test/files/run/t5277_1.scala
index 57acd699ff..57acd699ff 100644
--- a/test/pending/run/t5277_1.scala
+++ b/test/files/run/t5277_1.scala
diff --git a/test/files/run/t5277_2.check b/test/files/run/t5277_2.check
new file mode 100644
index 0000000000..ca017e2a40
--- /dev/null
+++ b/test/files/run/t5277_2.check
@@ -0,0 +1,2 @@
+2()
+1()
diff --git a/test/pending/run/t5277_2.scala b/test/files/run/t5277_2.scala
index 67b6b000bc..67b6b000bc 100644
--- a/test/pending/run/t5277_2.scala
+++ b/test/files/run/t5277_2.scala
diff --git a/test/pending/run/t5277_2.check b/test/files/run/t5335.check
index 5f1d0ecea5..0cfbf08886 100644
--- a/test/pending/run/t5277_2.check
+++ b/test/files/run/t5335.check
@@ -1,2 +1 @@
2
-1
diff --git a/test/files/run/t5335.scala b/test/files/run/t5335.scala
new file mode 100644
index 0000000000..9a8b91f04d
--- /dev/null
+++ b/test/files/run/t5335.scala
@@ -0,0 +1,14 @@
+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{
+ println(new {def x = 2}.x)
+ };
+
+ 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_closure6.check b/test/pending/run/reify_closure6.check
index 3526d04b0e..e521ea874d 100644
--- a/test/pending/run/reify_closure6.check
+++ b/test/pending/run/reify_closure6.check
@@ -1,3 +1,7 @@
+q = 1
+y = 1
first invocation = 15
-second invocation = 18
+q = 2
+y = 1
+second invocation = 17
q after second invocation = 2
diff --git a/test/pending/run/reify_closure6.scala b/test/pending/run/reify_closure6.scala
index 909071aa44..43ddfde28d 100644
--- a/test/pending/run/reify_closure6.scala
+++ b/test/pending/run/reify_closure6.scala
@@ -10,6 +10,8 @@ object Test extends App {
val fun: reflect.Code[Int => Int] = x => {
y += 1
q += 1
+ println("q = " + q)
+ println("y = " + y)
x + ys.length * z + q + y
}
diff --git a/test/pending/run/reify_closure7.check b/test/pending/run/reify_closure7.check
new file mode 100644
index 0000000000..bf58b52bce
--- /dev/null
+++ b/test/pending/run/reify_closure7.check
@@ -0,0 +1,6 @@
+q = 1
+y = 1
+first invocation = 15
+q = 2
+y = 2
+second invocation = 17
diff --git a/test/pending/run/reify_closure7.scala b/test/pending/run/reify_closure7.scala
new file mode 100644
index 0000000000..8933df23fa
--- /dev/null
+++ b/test/pending/run/reify_closure7.scala
@@ -0,0 +1,32 @@
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ var q = 0
+ var clo: Int => Int = null
+ def foo[T](ys: List[T]): Int => Int = {
+ val z = 1
+ var y = 0
+ val fun: reflect.Code[Int => Int] = x => {
+ y += 1
+ q += 1
+ println("q = " + q)
+ println("y = " + y)
+ x + ys.length * z + q + y
+ }
+
+ if (clo == null) {
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(fun.tree)
+ val dyn = toolbox.runExpr(ttree)
+ clo = dyn.asInstanceOf[Int => Int]
+ }
+
+ clo
+ }
+
+ println("first invocation = " + foo(List(1, 2, 3))(10))
+ println("second invocation = " + foo(List(1, 2, 3, 4))(10))
+}
diff --git a/test/pending/run/reify_closure8a.check b/test/pending/run/reify_closure8a.check
new file mode 100644
index 0000000000..9a037142aa
--- /dev/null
+++ b/test/pending/run/reify_closure8a.check
@@ -0,0 +1 @@
+10 \ No newline at end of file
diff --git a/test/pending/run/reify_closure8a.scala b/test/pending/run/reify_closure8a.scala
new file mode 100644
index 0000000000..5e54bfc8c7
--- /dev/null
+++ b/test/pending/run/reify_closure8a.scala
@@ -0,0 +1,17 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ class Foo(val y: Int) {
+ def fun = lift{y}
+ }
+
+ 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 foo = dyn.asInstanceOf[Int]
+ println(foo)
+}
diff --git a/test/pending/run/reify_closure8b.check b/test/pending/run/reify_closure8b.check
new file mode 100644
index 0000000000..9a037142aa
--- /dev/null
+++ b/test/pending/run/reify_closure8b.check
@@ -0,0 +1 @@
+10 \ No newline at end of file
diff --git a/test/pending/run/reify_closure8b.scala b/test/pending/run/reify_closure8b.scala
new file mode 100644
index 0000000000..9e37e4e09a
--- /dev/null
+++ b/test/pending/run/reify_closure8b.scala
@@ -0,0 +1,17 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ class Foo(y: Int) {
+ def fun = lift{y}
+ }
+
+ 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 foo = dyn.asInstanceOf[Int]
+ println(foo)
+}
diff --git a/test/pending/run/reify_closure9a.check b/test/pending/run/reify_closure9a.check
new file mode 100644
index 0000000000..9a037142aa
--- /dev/null
+++ b/test/pending/run/reify_closure9a.check
@@ -0,0 +1 @@
+10 \ No newline at end of file
diff --git a/test/pending/run/reify_closure9a.scala b/test/pending/run/reify_closure9a.scala
new file mode 100644
index 0000000000..f3ee153d3c
--- /dev/null
+++ b/test/pending/run/reify_closure9a.scala
@@ -0,0 +1,20 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ def foo(y: Int) = {
+ class Foo(val y: Int) {
+ def fun = lift{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)
+ dyn.asInstanceOf[Int]
+ }
+
+ println(foo(10))
+}
diff --git a/test/pending/run/reify_closure9b.check b/test/pending/run/reify_closure9b.check
new file mode 100644
index 0000000000..9a037142aa
--- /dev/null
+++ b/test/pending/run/reify_closure9b.check
@@ -0,0 +1 @@
+10 \ No newline at end of file
diff --git a/test/pending/run/reify_closure9b.scala b/test/pending/run/reify_closure9b.scala
new file mode 100644
index 0000000000..8d349e8701
--- /dev/null
+++ b/test/pending/run/reify_closure9b.scala
@@ -0,0 +1,20 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ def foo(y: Int) = {
+ class Foo(y: Int) {
+ def fun = lift{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)
+ dyn.asInstanceOf[Int]
+ }
+
+ println(foo(10))
+}
diff --git a/test/pending/run/reify_closures10.check b/test/pending/run/reify_closures10.check
new file mode 100644
index 0000000000..fd3c81a4d7
--- /dev/null
+++ b/test/pending/run/reify_closures10.check
@@ -0,0 +1,2 @@
+5
+5
diff --git a/test/pending/run/reify_closures10.scala b/test/pending/run/reify_closures10.scala
new file mode 100644
index 0000000000..d0f895ae4d
--- /dev/null
+++ b/test/pending/run/reify_closures10.scala
@@ -0,0 +1,15 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ val x = 2
+ val y = 3
+ val code = lift{println(x + y); x + y}
+
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(code.tree)
+ println(toolbox.runExpr(ttree))
+}
diff --git a/test/pending/run/reify_closures11.check b/test/pending/run/reify_closures11.check
new file mode 100644
index 0000000000..d8263ee986
--- /dev/null
+++ b/test/pending/run/reify_closures11.check
@@ -0,0 +1 @@
+2 \ No newline at end of file
diff --git a/test/pending/run/reify_closures11.scala b/test/pending/run/reify_closures11.scala
new file mode 100644
index 0000000000..42053bd029
--- /dev/null
+++ b/test/pending/run/reify_closures11.scala
@@ -0,0 +1,18 @@
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+object Test extends App {
+ def fun() = {
+ def z() = 2
+ lift{z}
+ }
+
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(fun().tree)
+ val dyn = toolbox.runExpr(ttree)
+ val foo = dyn.asInstanceOf[Int]
+ println(foo)
+}
diff --git a/test/pending/run/reify_this.check b/test/pending/run/reify_this.check
new file mode 100644
index 0000000000..af3d0652a9
--- /dev/null
+++ b/test/pending/run/reify_this.check
@@ -0,0 +1,5 @@
+foo
+false
+2
+bar
+2 \ No newline at end of file
diff --git a/test/pending/run/reify_this.scala b/test/pending/run/reify_this.scala
new file mode 100644
index 0000000000..38ef72b6eb
--- /dev/null
+++ b/test/pending/run/reify_this.scala
@@ -0,0 +1,31 @@
+import scala.reflect._
+import scala.reflect.Code._
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import reflect.runtime.Mirror.ToolBox
+
+trait Eval {
+ def eval(code: Code[_]): Any = eval(code.tree)
+
+ def eval(tree: Tree): Any = {
+ val settings = new Settings
+ val reporter = new ConsoleReporter(settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(tree)
+ toolbox.runExpr(ttree)
+ }
+}
+
+object Test extends App with Eval {
+ // select a value from package
+ eval(lift{println("foo")})
+ eval(lift{println((new Object).toString == (new Object).toString)})
+
+ // select a type from package
+ eval(lift{val x: Any = 2; println(x)})
+ eval(lift{val x: Object = "bar"; println(x)})
+
+ // select a value from module
+ val x = 2
+ eval(lift{println(x)})
+}
diff --git a/test/pending/run/t5415.check b/test/pending/run/t5415.check
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/pending/run/t5415.check
diff --git a/test/pending/run/t5415.scala b/test/pending/run/t5415.scala
new file mode 100644
index 0000000000..3db356da86
--- /dev/null
+++ b/test/pending/run/t5415.scala
@@ -0,0 +1,14 @@
+import scala.tools.nsc.reporters._
+import scala.tools.nsc.Settings
+import scala.reflect.runtime.Mirror.ToolBox
+
+object Test extends App{
+ case class Queryable2[T]() { def filter(predicate: T => Boolean) = ??? }
+ trait CoffeesTable{ def sales : Int }
+ val q = Queryable2[CoffeesTable]()
+ val code = scala.reflect.Code.lift{q.filter(_.sales > 5)}
+
+ val reporter = new ConsoleReporter(new Settings)
+ val toolbox = new ToolBox(reporter)
+ val ttree = toolbox.typeCheck(code.tree)
+}