Skip to content

Commit ad86b9c

Browse files
Merge pull request #5317 from dotty-staging/make-flag-for-toolbox-settings
Handle Toolbox showRawTree the same way we handle color
2 parents 923b953 + ac09b7f commit ad86b9c

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

compiler/src/dotty/tools/dotc/config/ScalaSettings.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class ScalaSettings extends Settings.SettingGroup {
116116
val YprintDebug: Setting[Boolean] = BooleanSetting("-Yprint-debug", "when printing trees, print some extra information useful for debugging.")
117117
val YprintDebugOwners: Setting[Boolean] = BooleanSetting("-Yprint-debug-owners", "when printing trees, print owners of definitions.")
118118
val YshowPrintErrors: Setting[Boolean] = BooleanSetting("-Yshow-print-errors", "don't suppress exceptions thrown during tree printing.")
119+
val YshowRawQuoteTrees: Setting[Boolean] = BooleanSetting("-Yshow-raw-tree", "don't remove quote artifacts")
119120
val YtestPickler: Setting[Boolean] = BooleanSetting("-Ytest-pickler", "self-test for pickling functionality; should be used with -Ystop-after:pickler")
120121
val YcheckReentrant: Setting[Boolean] = BooleanSetting("-Ycheck-reentrant", "check that compiled program does not contain vars that can be accessed from a global root.")
121122
val YdropComments: Setting[Boolean] = BooleanSetting("-Ydrop-comments", "Drop comments when scanning source files.")

compiler/src/dotty/tools/dotc/quoted/QuoteDriver.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class QuoteDriver extends Driver {
2727
}
2828

2929
val (_, ctx0: Context) = setup(settings.compilerArgs.toArray :+ "dummy.scala", initCtx.fresh)
30-
val ctx = setColor(ctx0.fresh.setSetting(ctx0.settings.outputDir, outDir), settings)
30+
val ctx = setToolboxSettings(ctx0.fresh.setSetting(ctx0.settings.outputDir, outDir), settings)
3131

3232
val driver = new QuoteCompiler
3333
driver.newRun(ctx).compileExpr(expr)
@@ -43,14 +43,17 @@ class QuoteDriver extends Driver {
4343

4444
def show(expr: Expr[_], settings: Toolbox.Settings): String = {
4545
def show(tree: Tree, ctx: Context): String = {
46-
val tree1 = if (settings.showRawTree) tree else (new TreeCleaner).transform(tree)(ctx)
47-
new TastyImpl(ctx).showSourceCode.showTree(tree1)(ctx)
46+
implicit val c: Context = ctx
47+
val tree1 =
48+
if (ctx.settings.YshowRawQuoteTrees.value) tree
49+
else (new TreeCleaner).transform(tree)
50+
new TastyImpl(ctx).showSourceCode.showTree(tree1)
4851
}
4952
withTree(expr, show, settings)
5053
}
5154

5255
def withTree[T](expr: Expr[_], f: (Tree, Context) => T, settings: Toolbox.Settings): T = {
53-
val ctx = setColor(setup(settings.compilerArgs.toArray :+ "dummy.scala", initCtx.fresh)._2.fresh, settings)
56+
val ctx = setToolboxSettings(setup(settings.compilerArgs.toArray :+ "dummy.scala", initCtx.fresh)._2.fresh, settings)
5457

5558
var output: Option[T] = None
5659
def registerTree(tree: tpd.Tree)(ctx: Context): Unit = {
@@ -79,9 +82,10 @@ class QuoteDriver extends Driver {
7982
ictx
8083
}
8184

82-
private def setColor(ctx: FreshContext, settings: Toolbox.Settings): FreshContext =
85+
private def setToolboxSettings(ctx: FreshContext, settings: Toolbox.Settings): ctx.type = {
8386
ctx.setSetting(ctx.settings.color, if (settings.color) "always" else "never")
84-
87+
ctx.setSetting(ctx.settings.YshowRawQuoteTrees, settings.showRawTree)
88+
}
8589
}
8690

8791
object QuoteDriver {

0 commit comments

Comments
 (0)