diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-02-05 16:56:48 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-02-05 17:02:11 +0100 |
commit | 75696bc3d310a53594d97853f38bb0dbfef42390 (patch) | |
tree | cabebd3ab2cfbdf7a3d4f1969ead4b2c4055c6f8 /test/files | |
parent | ffc2389840852a120fecd772206d55db9a79f30e (diff) | |
download | scala-75696bc3d310a53594d97853f38bb0dbfef42390.tar.gz scala-75696bc3d310a53594d97853f38bb0dbfef42390.tar.bz2 scala-75696bc3d310a53594d97853f38bb0dbfef42390.zip |
Fixes https://issues.scala-lang.org/browse/SI-5334
New version of reification isn't susceptible to this bug.
The problem was with Code.lift generating not only a tree, but also
a manifest with the type of that tree. That led to an issue in the case
of the type of the manifest depending on a class declared inside the
quasiquote.
Now manifests in reification are gone, so is the problem.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/run/t5334_1.check | 2 | ||||
-rw-r--r-- | test/files/run/t5334_1.scala | 16 | ||||
-rw-r--r-- | test/files/run/t5334_2.check | 2 | ||||
-rw-r--r-- | test/files/run/t5334_2.scala | 16 |
4 files changed, 36 insertions, 0 deletions
diff --git a/test/files/run/t5334_1.check b/test/files/run/t5334_1.check new file mode 100644 index 0000000000..e09aedaede --- /dev/null +++ b/test/files/run/t5334_1.check @@ -0,0 +1,2 @@ +C +C
\ No newline at end of file diff --git a/test/files/run/t5334_1.scala b/test/files/run/t5334_1.scala new file mode 100644 index 0000000000..7acf282bb8 --- /dev/null +++ b/test/files/run/t5334_1.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 { override def toString = "C" } + new C + }; + + val reporter = new ConsoleReporter(new Settings) + val toolbox = new ToolBox(reporter) + val ttree = toolbox.typeCheck(code.tree) + println(ttree.tpe) + println(toolbox.runExpr(ttree)) +} diff --git a/test/files/run/t5334_2.check b/test/files/run/t5334_2.check new file mode 100644 index 0000000000..2ae76754c0 --- /dev/null +++ b/test/files/run/t5334_2.check @@ -0,0 +1,2 @@ +List[(C, C)] +List((C,C))
\ No newline at end of file diff --git a/test/files/run/t5334_2.scala b/test/files/run/t5334_2.scala new file mode 100644 index 0000000000..26f0778400 --- /dev/null +++ b/test/files/run/t5334_2.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 { override def toString() = "C" } + List((new C, new C)) + }; + + val reporter = new ConsoleReporter(new Settings) + val toolbox = new ToolBox(reporter) + val ttree = toolbox.typeCheck(code.tree) + println(ttree.tpe) + println(toolbox.runExpr(ttree)) +} |