diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/Settings.scala | 1 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreePrinters.scala | 6 |
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") |