From 96dd73146f4317feeb59a242d692977f87c5211d Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Sat, 30 Jun 2012 01:45:47 +0200 Subject: reify no longer dealiases symbols and types this uncovers a bug in toolboxes: https://issues.scala-lang.org/browse/SI-6007 however that bug is not critical, so it will be dealt with later --- test/pending/run/reify_newimpl_09.scala | 13 +++++++++++++ test/pending/run/reify_newimpl_09a.scala | 13 +++++++++++++ test/pending/run/reify_newimpl_09b.scala | 14 ++++++++++++++ test/pending/run/reify_newimpl_09c.scala | 20 ++++++++++++++++++++ test/pending/run/reify_newimpl_10.scala | 14 ++++++++++++++ test/pending/run/reify_newimpl_16.scala | 17 +++++++++++++++++ test/pending/run/reify_newimpl_17.scala | 20 ++++++++++++++++++++ test/pending/run/reify_newimpl_28.scala | 17 +++++++++++++++++ test/pending/run/reify_newimpl_32.scala | 17 +++++++++++++++++ test/pending/run/reify_newimpl_34.scala | 18 ++++++++++++++++++ 10 files changed, 163 insertions(+) create mode 100644 test/pending/run/reify_newimpl_09.scala create mode 100644 test/pending/run/reify_newimpl_09a.scala create mode 100644 test/pending/run/reify_newimpl_09b.scala create mode 100644 test/pending/run/reify_newimpl_09c.scala create mode 100644 test/pending/run/reify_newimpl_10.scala create mode 100644 test/pending/run/reify_newimpl_16.scala create mode 100644 test/pending/run/reify_newimpl_17.scala create mode 100644 test/pending/run/reify_newimpl_28.scala create mode 100644 test/pending/run/reify_newimpl_32.scala create mode 100644 test/pending/run/reify_newimpl_34.scala (limited to 'test/pending') diff --git a/test/pending/run/reify_newimpl_09.scala b/test/pending/run/reify_newimpl_09.scala new file mode 100644 index 0000000000..27fbd37b71 --- /dev/null +++ b/test/pending/run/reify_newimpl_09.scala @@ -0,0 +1,13 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + type T = Int + val code = reify { + List[T](2) + } + println(code.eval) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_09a.scala b/test/pending/run/reify_newimpl_09a.scala new file mode 100644 index 0000000000..27fbd37b71 --- /dev/null +++ b/test/pending/run/reify_newimpl_09a.scala @@ -0,0 +1,13 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + type T = Int + val code = reify { + List[T](2) + } + println(code.eval) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_09b.scala b/test/pending/run/reify_newimpl_09b.scala new file mode 100644 index 0000000000..9e86dd5d8d --- /dev/null +++ b/test/pending/run/reify_newimpl_09b.scala @@ -0,0 +1,14 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + type U = Int + type T = U + val code = reify { + List[T](2) + } + println(code.eval) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_09c.scala b/test/pending/run/reify_newimpl_09c.scala new file mode 100644 index 0000000000..e2f4a4923a --- /dev/null +++ b/test/pending/run/reify_newimpl_09c.scala @@ -0,0 +1,20 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + def foo[W] = { + type U = W + type T = U + reify { + List[T](2) + } + } + val code = foo[Int] + println(code.tree.freeTypes) + val W = code.tree.freeTypes(2) + cm.mkToolBox().runExpr(code.tree, Map(W -> definitions.IntTpe)) + println(code.eval) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_10.scala b/test/pending/run/reify_newimpl_10.scala new file mode 100644 index 0000000000..791e52943a --- /dev/null +++ b/test/pending/run/reify_newimpl_10.scala @@ -0,0 +1,14 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + type T = Int + implicit val tt = implicitly[TypeTag[String]].asInstanceOf[TypeTag[T]] // this "mistake" is made for a reason! + val code = reify { + List[T](2) + } + println(code.eval) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_16.scala b/test/pending/run/reify_newimpl_16.scala new file mode 100644 index 0000000000..a0cadf4d48 --- /dev/null +++ b/test/pending/run/reify_newimpl_16.scala @@ -0,0 +1,17 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + class C { + type T = Int + val code = reify { + List[T](2) + } + println(code.eval) + } + + new C + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_17.scala b/test/pending/run/reify_newimpl_17.scala new file mode 100644 index 0000000000..8fbcd52502 --- /dev/null +++ b/test/pending/run/reify_newimpl_17.scala @@ -0,0 +1,20 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + class C[U] { + type T = U + val code = reify { + List[T](2.asInstanceOf[T]) + } + println(code.eval) + } + + try { + new C[Int] + } catch { + case ex: Throwable => + println(ex) + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_28.scala b/test/pending/run/reify_newimpl_28.scala new file mode 100644 index 0000000000..524a110704 --- /dev/null +++ b/test/pending/run/reify_newimpl_28.scala @@ -0,0 +1,17 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + object C { + type T = Int + val code = reify { + List[T](2) + } + println(code.eval) + } + + C + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_32.scala b/test/pending/run/reify_newimpl_32.scala new file mode 100644 index 0000000000..095e59d919 --- /dev/null +++ b/test/pending/run/reify_newimpl_32.scala @@ -0,0 +1,17 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + object C { + type T = Int + val code = reify { + List[C.T](2) + } + println(code.eval) + } + + C + } +} \ No newline at end of file diff --git a/test/pending/run/reify_newimpl_34.scala b/test/pending/run/reify_newimpl_34.scala new file mode 100644 index 0000000000..a0a575ed7d --- /dev/null +++ b/test/pending/run/reify_newimpl_34.scala @@ -0,0 +1,18 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox +import scala.tools.reflect.Eval + +object Test extends App { + { + object C { + type T = Int + lazy val c = C + val code = reify { + List[c.T](2) + } + println(code.eval) + } + + C + } +} \ No newline at end of file -- cgit v1.2.3