diff options
-rw-r--r-- | src/compiler/scala/reflect/reify/package.scala | 2 | ||||
-rw-r--r-- | src/compiler/scala/tools/reflect/ToolBoxFactory.scala | 2 | ||||
-rw-r--r-- | test/files/run/t5943a1.check | 1 | ||||
-rw-r--r-- | test/files/run/t5943a1.scala | 9 | ||||
-rw-r--r-- | test/files/run/t5943a2.check | 1 | ||||
-rw-r--r-- | test/files/run/t5943a2.scala | 9 | ||||
-rw-r--r-- | test/pending/run/t5943b1.scala | 10 | ||||
-rw-r--r-- | test/pending/run/t5943b2.scala | 10 |
8 files changed, 42 insertions, 2 deletions
diff --git a/src/compiler/scala/reflect/reify/package.scala b/src/compiler/scala/reflect/reify/package.scala index a76f147dc4..a7ff51a4f1 100644 --- a/src/compiler/scala/reflect/reify/package.scala +++ b/src/compiler/scala/reflect/reify/package.scala @@ -73,7 +73,7 @@ package object reify { def reifyEnclosingRuntimeClass(global: Global)(typer0: global.analyzer.Typer): global.Tree = { import global._ import definitions._ - def isThisInScope = typer0.context.enclosingContextChain exists (_.tree.isInstanceOf[Template]) + def isThisInScope = typer0.context.enclosingContextChain exists (_.tree.isInstanceOf[ImplDef]) if (isThisInScope) { val enclosingClasses = typer0.context.enclosingContextChain map (_.tree) collect { case classDef: ClassDef => classDef } val classInScope = enclosingClasses.headOption getOrElse EmptyTree diff --git a/src/compiler/scala/tools/reflect/ToolBoxFactory.scala b/src/compiler/scala/tools/reflect/ToolBoxFactory.scala index d941519958..c2310ed851 100644 --- a/src/compiler/scala/tools/reflect/ToolBoxFactory.scala +++ b/src/compiler/scala/tools/reflect/ToolBoxFactory.scala @@ -111,7 +111,7 @@ abstract class ToolBoxFactory[U <: JavaUniverse](val u: U) { factorySelf => val ownerClass = rootMirror.EmptyPackageClass.newClassSymbol(newTypeName("<expression-owner>")) build.setTypeSignature(ownerClass, ClassInfoType(List(ObjectClass.tpe), newScope, ownerClass)) val owner = ownerClass.newLocalDummy(expr.pos) - var currentTyper = typer.atOwner(expr, owner) + var currentTyper = analyzer.newTyper(analyzer.rootContext(NoCompilationUnit, EmptyTree).make(expr, owner)) val wrapper1 = if (!withImplicitViewsDisabled) (currentTyper.context.withImplicitsEnabled[Tree] _) else (currentTyper.context.withImplicitsDisabled[Tree] _) val wrapper2 = if (!withMacrosDisabled) (currentTyper.context.withMacrosEnabled[Tree] _) else (currentTyper.context.withMacrosDisabled[Tree] _) def wrapper (tree: => Tree) = wrapper1(wrapper2(tree)) diff --git a/test/files/run/t5943a1.check b/test/files/run/t5943a1.check new file mode 100644 index 0000000000..9b3d7a049f --- /dev/null +++ b/test/files/run/t5943a1.check @@ -0,0 +1 @@ +scala.this.Predef.intWrapper(1).to(3).map[Int, scala.collection.immutable.IndexedSeq[Int]](((x$1: Int) => x$1.+(1)))(immutable.this.IndexedSeq.canBuildFrom[Int])
diff --git a/test/files/run/t5943a1.scala b/test/files/run/t5943a1.scala new file mode 100644 index 0000000000..00f4afa808 --- /dev/null +++ b/test/files/run/t5943a1.scala @@ -0,0 +1,9 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{currentMirror => cm} +import scala.tools.reflect.ToolBox + +object Test extends App { + val tb = cm.mkToolBox() + val expr = tb.parse("1 to 3 map (_+1)") + println(tb.typeCheck(expr)) +}
\ No newline at end of file diff --git a/test/files/run/t5943a2.check b/test/files/run/t5943a2.check new file mode 100644 index 0000000000..90e88e2997 --- /dev/null +++ b/test/files/run/t5943a2.check @@ -0,0 +1 @@ +Vector(2, 3, 4)
diff --git a/test/files/run/t5943a2.scala b/test/files/run/t5943a2.scala new file mode 100644 index 0000000000..fda800852d --- /dev/null +++ b/test/files/run/t5943a2.scala @@ -0,0 +1,9 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{currentMirror => cm} +import scala.tools.reflect.ToolBox + +object Test extends App { + val tb = cm.mkToolBox() + val expr = tb.parse("1 to 3 map (_+1)") + println(tb.eval(expr)) +}
\ No newline at end of file diff --git a/test/pending/run/t5943b1.scala b/test/pending/run/t5943b1.scala new file mode 100644 index 0000000000..0d54718753 --- /dev/null +++ b/test/pending/run/t5943b1.scala @@ -0,0 +1,10 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{currentMirror => cm} +import scala.tools.reflect.ToolBox + +// pending until https://issues.scala-lang.org/browse/SI-6393 is fixed +object Test extends App { + val tb = cm.mkToolBox() + val expr = tb.parse("math.sqrt(4.0)") + println(tb.typeCheck(expr)) +}
\ No newline at end of file diff --git a/test/pending/run/t5943b2.scala b/test/pending/run/t5943b2.scala new file mode 100644 index 0000000000..85299d9f12 --- /dev/null +++ b/test/pending/run/t5943b2.scala @@ -0,0 +1,10 @@ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{currentMirror => cm} +import scala.tools.reflect.ToolBox + +// pending until https://issues.scala-lang.org/browse/SI-6393 is fixed +object Test extends App { + val tb = cm.mkToolBox() + val expr = tb.parse("math.sqrt(4.0)") + println(tb.eval(expr)) +}
\ No newline at end of file |