Skip to content

Commit 008db40

Browse files
committed
Merge pull request scala#1331 from scalamacros/ticket/5943
SI-5943 toolboxes now autoimport Predef and scala
2 parents 52ea3cc + 440d28d commit 008db40

File tree

8 files changed

+42
-2
lines changed

8 files changed

+42
-2
lines changed

src/compiler/scala/reflect/reify/package.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ package object reify {
7272
def reifyEnclosingRuntimeClass(global: Global)(typer0: global.analyzer.Typer): global.Tree = {
7373
import global._
7474
import definitions._
75-
def isThisInScope = typer0.context.enclosingContextChain exists (_.tree.isInstanceOf[Template])
75+
def isThisInScope = typer0.context.enclosingContextChain exists (_.tree.isInstanceOf[ImplDef])
7676
if (isThisInScope) {
7777
val enclosingClasses = typer0.context.enclosingContextChain map (_.tree) collect { case classDef: ClassDef => classDef }
7878
val classInScope = enclosingClasses.headOption getOrElse EmptyTree

src/compiler/scala/tools/reflect/ToolBoxFactory.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ abstract class ToolBoxFactory[U <: JavaUniverse](val u: U) { factorySelf =>
118118
val ownerClass = rootMirror.EmptyPackageClass.newClassSymbol(newTypeName("<expression-owner>"))
119119
build.setTypeSignature(ownerClass, ClassInfoType(List(ObjectClass.tpe), newScope, ownerClass))
120120
val owner = ownerClass.newLocalDummy(expr.pos)
121-
var currentTyper = typer.atOwner(expr, owner)
121+
var currentTyper = analyzer.newTyper(analyzer.rootContext(NoCompilationUnit, EmptyTree).make(expr, owner))
122122
val wrapper1 = if (!withImplicitViewsDisabled) (currentTyper.context.withImplicitsEnabled[Tree] _) else (currentTyper.context.withImplicitsDisabled[Tree] _)
123123
val wrapper2 = if (!withMacrosDisabled) (currentTyper.context.withMacrosEnabled[Tree] _) else (currentTyper.context.withMacrosDisabled[Tree] _)
124124
def wrapper (tree: => Tree) = wrapper1(wrapper2(tree))

test/files/run/t5943a1.check

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
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])

test/files/run/t5943a1.scala

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import scala.reflect.runtime.universe._
2+
import scala.reflect.runtime.{currentMirror => cm}
3+
import scala.tools.reflect.ToolBox
4+
5+
object Test extends App {
6+
val tb = cm.mkToolBox()
7+
val expr = tb.parse("1 to 3 map (_+1)")
8+
println(tb.typeCheck(expr))
9+
}

test/files/run/t5943a2.check

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Vector(2, 3, 4)

test/files/run/t5943a2.scala

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import scala.reflect.runtime.universe._
2+
import scala.reflect.runtime.{currentMirror => cm}
3+
import scala.tools.reflect.ToolBox
4+
5+
object Test extends App {
6+
val tb = cm.mkToolBox()
7+
val expr = tb.parse("1 to 3 map (_+1)")
8+
println(tb.eval(expr))
9+
}

test/pending/run/t5943b1.scala

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import scala.reflect.runtime.universe._
2+
import scala.reflect.runtime.{currentMirror => cm}
3+
import scala.tools.reflect.ToolBox
4+
5+
// pending until https://issues.scala-lang.org/browse/SI-6393 is fixed
6+
object Test extends App {
7+
val tb = cm.mkToolBox()
8+
val expr = tb.parse("math.sqrt(4.0)")
9+
println(tb.typeCheck(expr))
10+
}

test/pending/run/t5943b2.scala

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import scala.reflect.runtime.universe._
2+
import scala.reflect.runtime.{currentMirror => cm}
3+
import scala.tools.reflect.ToolBox
4+
5+
// pending until https://issues.scala-lang.org/browse/SI-6393 is fixed
6+
object Test extends App {
7+
val tb = cm.mkToolBox()
8+
val expr = tb.parse("math.sqrt(4.0)")
9+
println(tb.eval(expr))
10+
}

0 commit comments

Comments
 (0)