summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-02-05 16:49:18 +0100
committerEugene Burmako <xeno.by@gmail.com>2012-02-05 16:49:18 +0100
commitffc2389840852a120fecd772206d55db9a79f30e (patch)
treeef2202f4f9178b0983edec5b8486c8099067a6a2 /test/files/run
parent3b69e08867428171abf9ead416fe32b7bc77f603 (diff)
downloadscala-ffc2389840852a120fecd772206d55db9a79f30e.tar.gz
scala-ffc2389840852a120fecd772206d55db9a79f30e.tar.bz2
scala-ffc2389840852a120fecd772206d55db9a79f30e.zip
Replaced LiftCode with a function in MacroContext
Major cleanup of reification: * LiftCode phase has been removed * Code has been deprecated and will be removed as we roll a new starr * Logic related to type-directed lifting has been purged scala.reflect.macro.Context#reify now provides the same services as LiftCode provided (except that it returns Tree, not Code). For testing purposes, I've retained the oh-so-convenient automagic lift. test/files/codelib/code.jar now hosts Code.lift reimplemented in a macro, so that the tests can continue working as if nothing has happened.
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/code.check36
-rw-r--r--test/files/run/code.scala60
-rw-r--r--test/files/run/programmatic-main.check37
-rw-r--r--test/files/run/reify_closure1.scala4
-rw-r--r--test/files/run/reify_closure2a.scala4
-rw-r--r--test/files/run/reify_closure3a.scala4
-rw-r--r--test/files/run/reify_closure4a.scala4
-rw-r--r--test/files/run/reify_closure5a.scala4
-rw-r--r--test/files/run/reify_closure6.scala4
-rw-r--r--test/files/run/reify_closure7.scala4
-rw-r--r--test/files/run/reify_this.scala2
-rw-r--r--test/files/run/t4875.check17
-rw-r--r--test/files/run/t4875.scala12
13 files changed, 33 insertions, 159 deletions
diff --git a/test/files/run/code.check b/test/files/run/code.check
deleted file mode 100644
index 9b0351bbf9..0000000000
--- a/test/files/run/code.check
+++ /dev/null
@@ -1,36 +0,0 @@
-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/files/run/code.scala b/test/files/run/code.scala
deleted file mode 100644
index 162f796c63..0000000000
--- a/test/files/run/code.scala
+++ /dev/null
@@ -1,60 +0,0 @@
-import scala.tools.partest.utils.CodeTest
-
-case class Element(name: String)
-
-object Test extends App {
- case class InnerElement(name: String)
- def foo[T](ys: List[T]) = {
- val fun: reflect.Code[Int => Int] = x => x + ys.length
- fun
- }
- CodeTest(foo(List(2)), args)
- CodeTest({() => val e = Element("someName"); e}, args)
-// CodeTest({() => val e = InnerElement("someName"); e}, args) // (does not work yet)
- def titi() = {
- var truc = 0
- CodeTest(() => {
- truc = 6
- }, args)
- }
- def tata(): Unit = {
- var truc = 0
- CodeTest(() => {
- truc = truc + 6
- }, args)
- }
- titi()
- tata()
- new baz.A(args)
-
- def show() {
- def foo[T](ys: List[T]) = {
- val fun: reflect.Code[Int => Int] = x => x + ys.length
- CodeTest(fun, args)
- }
- foo(List(1, 2, 3))
- }
-
- show()
-
- def evaltest(x: Int) = {
- CodeTest.static(() => x + 1, args)
- CodeTest(() => x + 1, args)
- }
-
- println("1+1 = "+evaltest(1))
-}
-
-
-package baz {
-
- case class BazElement(name: String) { }
-
- class A(args: Array[String]) {
- CodeTest(() => new baz.BazElement("someName"), args)
- }
-
-}
-
-
-
diff --git a/test/files/run/programmatic-main.check b/test/files/run/programmatic-main.check
index 4aeb3ab60c..6f253f5de1 100644
--- a/test/files/run/programmatic-main.check
+++ b/test/files/run/programmatic-main.check
@@ -7,23 +7,22 @@
superaccessors 5 add super accessors in traits and nested classes
pickler 6 serialize symbol tables
refchecks 7 reference/override checking, translate nested objects
- liftcode 8 reify trees
- uncurry 9 uncurry, translate function values to anonymous classes
- tailcalls 10 replace tail calls by jumps
- specialize 11 @specialized-driven class and method specialization
- explicitouter 12 this refs to outer pointers, translate patterns
- erasure 13 erase types, add interfaces for traits
- lazyvals 14 allocate bitmaps, translate lazy vals into lazified defs
- lambdalift 15 move nested functions to top level
- constructors 16 move field definitions into constructors
- flatten 17 eliminate inner classes
- mixin 18 mixin composition
- cleanup 19 platform-specific cleanups, generate reflective calls
- icode 20 generate portable intermediate code
- inliner 21 optimization: do inlining
-inlineExceptionHandlers 22 optimization: inline exception handlers
- closelim 23 optimization: eliminate uncalled closures
- dce 24 optimization: eliminate dead code
- jvm 25 generate JVM bytecode
- terminal 26 The last phase in the compiler chain
+ uncurry 8 uncurry, translate function values to anonymous classes
+ tailcalls 9 replace tail calls by jumps
+ specialize 10 @specialized-driven class and method specialization
+ explicitouter 11 this refs to outer pointers, translate patterns
+ erasure 12 erase types, add interfaces for traits
+ lazyvals 13 allocate bitmaps, translate lazy vals into lazified defs
+ lambdalift 14 move nested functions to top level
+ constructors 15 move field definitions into constructors
+ flatten 16 eliminate inner classes
+ mixin 17 mixin composition
+ cleanup 18 platform-specific cleanups, generate reflective calls
+ icode 19 generate portable intermediate code
+ inliner 20 optimization: do inlining
+inlineExceptionHandlers 21 optimization: inline exception handlers
+ closelim 22 optimization: eliminate uncalled closures
+ dce 23 optimization: eliminate dead code
+ jvm 24 generate JVM bytecode
+ terminal 25 The last phase in the compiler chain
diff --git a/test/files/run/reify_closure1.scala b/test/files/run/reify_closure1.scala
index 825a38dc1d..960f6aec3e 100644
--- a/test/files/run/reify_closure1.scala
+++ b/test/files/run/reify_closure1.scala
@@ -4,9 +4,9 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
def foo[T](ys: List[T]): Int => Int = {
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
x
- }
+ }}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
diff --git a/test/files/run/reify_closure2a.scala b/test/files/run/reify_closure2a.scala
index b88bec005d..6c28514c2b 100644
--- a/test/files/run/reify_closure2a.scala
+++ b/test/files/run/reify_closure2a.scala
@@ -4,9 +4,9 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
def foo(y: Int): Int => 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)
diff --git a/test/files/run/reify_closure3a.scala b/test/files/run/reify_closure3a.scala
index 6414fa58a3..4444c55ddf 100644
--- a/test/files/run/reify_closure3a.scala
+++ b/test/files/run/reify_closure3a.scala
@@ -6,9 +6,9 @@ object Test extends App {
def foo(y: Int): Int => 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)
diff --git a/test/files/run/reify_closure4a.scala b/test/files/run/reify_closure4a.scala
index 99e9d82706..886e643a47 100644
--- a/test/files/run/reify_closure4a.scala
+++ b/test/files/run/reify_closure4a.scala
@@ -6,9 +6,9 @@ object Test extends App {
def foo(y: Int): Int => 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)
diff --git a/test/files/run/reify_closure5a.scala b/test/files/run/reify_closure5a.scala
index 0ac53d5479..20994abff0 100644
--- a/test/files/run/reify_closure5a.scala
+++ b/test/files/run/reify_closure5a.scala
@@ -4,9 +4,9 @@ import reflect.runtime.Mirror.ToolBox
object Test extends App {
def foo[T](ys: List[T]): Int => Int = {
- 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)
diff --git a/test/files/run/reify_closure6.scala b/test/files/run/reify_closure6.scala
index 54f1791bf2..192c08f701 100644
--- a/test/files/run/reify_closure6.scala
+++ b/test/files/run/reify_closure6.scala
@@ -7,13 +7,13 @@ object Test extends App {
def foo[T](ys: List[T]): Int => Int = {
val z = 1
var y = 0
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
y += 1
q += 1
println("q = " + q)
println("y = " + y)
x + ys.length * z + q + y
- }
+ }}
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter)
diff --git a/test/files/run/reify_closure7.scala b/test/files/run/reify_closure7.scala
index 8933df23fa..942c2cda9c 100644
--- a/test/files/run/reify_closure7.scala
+++ b/test/files/run/reify_closure7.scala
@@ -8,13 +8,13 @@ object Test extends App {
def foo[T](ys: List[T]): Int => Int = {
val z = 1
var y = 0
- val fun: reflect.Code[Int => Int] = x => {
+ val fun = reflect.Code.lift{(x: Int) => {
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)
diff --git a/test/files/run/reify_this.scala b/test/files/run/reify_this.scala
index 38ef72b6eb..44a25ae1b6 100644
--- a/test/files/run/reify_this.scala
+++ b/test/files/run/reify_this.scala
@@ -5,7 +5,7 @@ import scala.tools.nsc.Settings
import reflect.runtime.Mirror.ToolBox
trait Eval {
- def eval(code: Code[_]): Any = eval(code.tree)
+ def eval(code: Code): Any = eval(code.tree)
def eval(tree: Tree): Any = {
val settings = new Settings
diff --git a/test/files/run/t4875.check b/test/files/run/t4875.check
deleted file mode 100644
index f7609d5ca5..0000000000
--- a/test/files/run/t4875.check
+++ /dev/null
@@ -1,17 +0,0 @@
-Type in expressions to have them evaluated.
-Type :help for more information.
-
-scala>
-
-scala> import scala.reflect.Code
-import scala.reflect.Code
-
-scala> def codeOf[A](code: Code[A]) = code
-codeOf: [A](code: scala.reflect.Code[A])scala.reflect.Code[A]
-
-scala> codeOf((x: Iterable[_]) => throw new Exception)
-res0: scala.reflect.Code[Iterable[_] => Nothing] = Code(tree = ((x: Iterable[Any]) => throw new scala.`package`.Exception()), manifest = scala.Function1[scala.collection.Iterable[Any], Nothing])
-
-scala>
-
-scala>
diff --git a/test/files/run/t4875.scala b/test/files/run/t4875.scala
deleted file mode 100644
index c17211aede..0000000000
--- a/test/files/run/t4875.scala
+++ /dev/null
@@ -1,12 +0,0 @@
-import scala.tools.nsc.interpreter._
-import scala.tools.partest.ReplTest
-
-object Test extends ReplTest {
- class M[@specialized T] { }
-
- def code = """
- |import scala.reflect.Code
- |def codeOf[A](code: Code[A]) = code
- |codeOf((x: Iterable[_]) => throw new Exception)
- """.stripMargin
-}