summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala1
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreePrinters.scala6
2 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala
index 8db03da28c..fe031ce15d 100644
--- a/src/compiler/scala/tools/nsc/Settings.scala
+++ b/src/compiler/scala/tools/nsc/Settings.scala
@@ -120,6 +120,7 @@ class Settings(error: String => unit) {
val Xgadt = BooleanSetting("-Xgadt", "enable gadt for classes")
val Xlinearizer = ChoiceSetting ("-Xlinearizer", "Linearizer to use", List("normal", "dfs", "rpo", "dump"), "rpo")
val Xgenerics = BooleanSetting("-Xgenerics", "Use generic Java types");
+ val Xprintpos = BooleanSetting("-Xprintpos", "Print tree positions (as offsets)");
/** A list of all settings */
def allSettings: List[Setting] = allsettings.reverse
diff --git a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
index 137de920b9..cada6bdbc5 100644
--- a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
@@ -308,7 +308,8 @@ abstract class TreePrinters {
}
}
- def print(tree: Tree): unit =
+ def print(tree: Tree): unit = {
+ if (settings.Xprintpos.value) print("["+tree.pos+"]")
printRaw(
if (tree.isDef && tree.symbol != NoSymbol) {
tree match {
@@ -320,7 +321,8 @@ abstract class TreePrinters {
case AliasTypeDef(_, _, _, rhs) => AliasTypeDef(tree.symbol, rhs)
case _ => tree
}
- } else tree);
+ } else tree)
+ }
def print(unit: CompilationUnit): unit = {
print("// Scala source: " + unit.source + "\n")