diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-21 01:50:43 -0700 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2012-09-21 01:50:43 -0700 |
commit | 4adfcfe6ffc0d850568b5d606aa7fc91b4deca52 (patch) | |
tree | 1fd7ab7a83f123871611811fb76ae9fe47c84ca9 | |
parent | e515d2403db3fe6ead35a5d741f802cc959cac9d (diff) | |
parent | 676d895b7827f988b95a23c5bf7d40719fa438fe (diff) | |
download | scala-4adfcfe6ffc0d850568b5d606aa7fc91b4deca52.tar.gz scala-4adfcfe6ffc0d850568b5d606aa7fc91b4deca52.tar.bz2 scala-4adfcfe6ffc0d850568b5d606aa7fc91b4deca52.zip |
Merge pull request #1367 from retronym/ticket/6381
SI-6381 Honour -Yrangepos in the REPL
-rw-r--r-- | src/compiler/scala/tools/nsc/interpreter/IMain.scala | 5 | ||||
-rw-r--r-- | test/files/run/t6381.check | 17 | ||||
-rw-r--r-- | test/files/run/t6381.scala | 13 |
3 files changed, 34 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/IMain.scala b/src/compiler/scala/tools/nsc/interpreter/IMain.scala index 790a1ac8d4..9a22c15a12 100644 --- a/src/compiler/scala/tools/nsc/interpreter/IMain.scala +++ b/src/compiler/scala/tools/nsc/interpreter/IMain.scala @@ -262,7 +262,10 @@ class IMain(initialSettings: Settings, protected val out: JPrintWriter) extends protected def newCompiler(settings: Settings, reporter: Reporter): ReplGlobal = { settings.outputDirs setSingleOutput virtualDirectory settings.exposeEmptyPackage.value = true - new Global(settings, reporter) with ReplGlobal + if (settings.Yrangepos.value) + new Global(settings, reporter) with ReplGlobal with interactive.RangePositions + else + new Global(settings, reporter) with ReplGlobal } /** Parent classloader. Overridable. */ diff --git a/test/files/run/t6381.check b/test/files/run/t6381.check new file mode 100644 index 0000000000..b51cfd0398 --- /dev/null +++ b/test/files/run/t6381.check @@ -0,0 +1,17 @@ +Type in expressions to have them evaluated. +Type :help for more information. + +scala> import language.experimental.macros +import language.experimental.macros + +scala> def pos_impl(c: reflect.macros.Context): c.Expr[String] = + c.literal(c.enclosingPosition.getClass.toString) +pos_impl: (c: scala.reflect.macros.Context)c.Expr[String] + +scala> def pos = macro pos_impl +pos: String + +scala> pos +res0: String = class scala.reflect.internal.util.RangePosition + +scala> diff --git a/test/files/run/t6381.scala b/test/files/run/t6381.scala new file mode 100644 index 0000000000..859ec3cb30 --- /dev/null +++ b/test/files/run/t6381.scala @@ -0,0 +1,13 @@ +import scala.tools.partest.ReplTest + +object Test extends ReplTest { + def code = """ + |import language.experimental.macros + |def pos_impl(c: reflect.macros.Context): c.Expr[String] = + | c.literal(c.enclosingPosition.getClass.toString) + |def pos = macro pos_impl + |pos + |""".stripMargin.trim + + override def extraSettings: String = "-Yrangepos" +} |