summaryrefslogtreecommitdiff
path: root/src/partest
diff options
context:
space:
mode:
Diffstat (limited to 'src/partest')
-rw-r--r--src/partest/scala/tools/partest/utils/CodeTest.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/partest/scala/tools/partest/utils/CodeTest.scala b/src/partest/scala/tools/partest/utils/CodeTest.scala
index c90168a313..c236d89bbd 100644
--- a/src/partest/scala/tools/partest/utils/CodeTest.scala
+++ b/src/partest/scala/tools/partest/utils/CodeTest.scala
@@ -24,11 +24,17 @@ object CodeTest {
def apply[T](code: Code[T], args: Array[String] = Array()) = {
println("testing: "+code.tree)
+ println("type is: "+code.manifest.tpe)
+ val isNullary = code.manifest.tpe.typeSymbol == scala.reflect.mirror.definitions.FunctionClass(0)
val reporter = new ConsoleReporter(new Settings)
val toolbox = new ToolBox(reporter, args mkString " ")
val ttree = toolbox.typeCheck(code.tree, code.manifest.tpe)
- println("result = " + toolbox.showAttributed(ttree))
- val evaluated = toolbox.runExpr(ttree)
+ println("result = " + toolbox.showAttributed(ttree, printTypes = true, printIds = false))
+ var evaluated = toolbox.runExpr(ttree)
+ if (evaluated != null && isNullary) {
+ val applyMeth = evaluated.getClass.getMethod("apply")
+ evaluated = applyMeth.invoke(evaluated)
+ }
println("evaluated = "+evaluated)
evaluated
}