summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-02-05 14:26:42 +0100
committerEugene Burmako <xeno.by@gmail.com>2012-02-05 16:52:14 +0100
commitf914350f8f5fecce7350a4c7e1a6c2fe447c7324 (patch)
tree0d5def1e3a0c39bf896ef1b05bcb5c290fe362e9
parentffc2389840852a120fecd772206d55db9a79f30e (diff)
downloadscala-f914350f8f5fecce7350a4c7e1a6c2fe447c7324.tar.gz
scala-f914350f8f5fecce7350a4c7e1a6c2fe447c7324.tar.bz2
scala-f914350f8f5fecce7350a4c7e1a6c2fe447c7324.zip
Fixes https://issues.scala-lang.org/browse/SI-5272
-rw-r--r--src/compiler/scala/tools/nsc/ast/Reifiers.scala4
-rw-r--r--test/files/run/t5272_1.check1
-rw-r--r--test/files/run/t5272_1.scala (renamed from test/pending/run/t5272.scala)0
-rw-r--r--test/files/run/t5272_2.check1
-rw-r--r--test/files/run/t5272_2.scala16
-rw-r--r--test/pending/run/t5272.check1
6 files changed, 20 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/Reifiers.scala b/src/compiler/scala/tools/nsc/ast/Reifiers.scala
index 952110ade2..ef87925959 100644
--- a/src/compiler/scala/tools/nsc/ast/Reifiers.scala
+++ b/src/compiler/scala/tools/nsc/ast/Reifiers.scala
@@ -281,9 +281,9 @@ trait Reifiers { self: Global =>
private def reifyTree(tree: Tree): Tree = tree match {
case EmptyTree =>
reifyMirrorObject(EmptyTree)
- case This(_) if !(boundSyms contains tree.symbol) =>
+ case This(_) if tree.symbol != NoSymbol && !(boundSyms contains tree.symbol) =>
reifyFree(tree)
- case Ident(_) if !(boundSyms contains tree.symbol) =>
+ case Ident(_) if tree.symbol != NoSymbol && !(boundSyms contains tree.symbol) =>
if (tree.symbol.isVariable && tree.symbol.owner.isTerm) {
captureVariable(tree.symbol) // Note order dependency: captureVariable needs to come before reifyTree here.
mirrorCall("Select", reifyFree(tree), reifyName(nme.elem))
diff --git a/test/files/run/t5272_1.check b/test/files/run/t5272_1.check
new file mode 100644
index 0000000000..9f8d6f24e7
--- /dev/null
+++ b/test/files/run/t5272_1.check
@@ -0,0 +1 @@
+okay \ No newline at end of file
diff --git a/test/pending/run/t5272.scala b/test/files/run/t5272_1.scala
index 3f44d05fb3..3f44d05fb3 100644
--- a/test/pending/run/t5272.scala
+++ b/test/files/run/t5272_1.scala
diff --git a/test/files/run/t5272_2.check b/test/files/run/t5272_2.check
new file mode 100644
index 0000000000..549f3f3af8
--- /dev/null
+++ b/test/files/run/t5272_2.check
@@ -0,0 +1 @@
+okay2 \ No newline at end of file
diff --git a/test/files/run/t5272_2.scala b/test/files/run/t5272_2.scala
new file mode 100644
index 0000000000..833ee65285
--- /dev/null
+++ b/test/files/run/t5272_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{
+ 2 match {
+ case x => println("okay" + 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/t5272.check b/test/pending/run/t5272.check
deleted file mode 100644
index dcf02b2fb6..0000000000
--- a/test/pending/run/t5272.check
+++ /dev/null
@@ -1 +0,0 @@
-okay