Skip to content

Commit 1705fcf

Browse files
committed
Move some logic from UserFacingPrinter to RefinedPrinter
1 parent 743d42e commit 1705fcf

File tree

5 files changed

+8
-11
lines changed

5 files changed

+8
-11
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class ScalaSettings extends Settings.SettingGroup {
103103
val YprintSyms = BooleanSetting("-Yprint-syms", "when printing trees print info in symbols instead of corresponding info in trees.")
104104
val YprintDebug = BooleanSetting("-Yprint-debug", "when printing trees, print some extra information useful for debugging.")
105105
val YprintDecompile = BooleanSetting("-Yprint-decompile", "Print the program using user friendly abstractions.")
106+
val YprintRepl = BooleanSetting("-Yprint-repl", "Print the program removing REPL encodings.")
106107
val YshowPrintErrors = BooleanSetting("-Yshow-print-errors", "don't suppress exceptions thrown during tree printing.")
107108
val YtestPickler = BooleanSetting("-Ytest-pickler", "self-test for pickling functionality; should be used with -Ystop-after:pickler")
108109
val YcheckReentrant = BooleanSetting("-Ycheck-reentrant", "check that compiled program does not contain vars that can be accessed from a global root.")

compiler/src/dotty/tools/dotc/printing/RefinedPrinter.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
3030
private[this] val printLines = ctx.settings.printLines.value
3131
private[this] val YprintDecompile =
3232
ctx.settings.YprintDecompile.value && !ctx.phases.dropWhile(!_.isInstanceOf[FirstTransform]).contains(ctx.phase)
33+
private[this] val YprintRepl = ctx.settings.YprintRepl.value
34+
3335
override protected[this] implicit def ctx: Context = myCtx
3436

3537
def withEnclosingDef(enclDef: Tree[_ >: Untyped])(op: => Text): Text = {
@@ -67,7 +69,9 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
6769
protected val PrintableFlags = (SourceModifierFlags | Label | Module | Local).toCommonFlags
6870

6971
override def nameString(name: Name): String =
70-
if (ctx.settings.YdebugNames.value) name.debugString else name.toString
72+
if (name.isReplAssignName) name.decode.toString.takeWhile(_ != '$')
73+
else if (ctx.settings.YdebugNames.value) name.debugString
74+
else name.toString
7175

7276
override protected def simpleNameString(sym: Symbol): String =
7377
nameString(if (ctx.property(XprintMode).isEmpty) sym.originalName else sym.name)

compiler/src/dotty/tools/dotc/printing/UserFacingPrinter.scala

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,6 @@ import SymDenotations.NoDenotation, Symbols.{ Symbol, ClassSymbol, defn }
88

99
class UserFacingPrinter(_ctx: Context) extends RefinedPrinter(_ctx) {
1010

11-
private[this] def getPkgCls(path: String) =
12-
_ctx.requiredPackage(path).moduleClass.asClass
13-
14-
override protected def keyString(sym: Symbol): String =
15-
if (sym.flagsUNSAFE is Package) "" else super.keyString(sym)
16-
17-
override def nameString(name: Name): String =
18-
if (name.isReplAssignName) name.decode.toString.takeWhile(_ != '$')
19-
else name.decode.toString
20-
2111
override def toText(sym: Symbol): Text =
2212
if (sym.name.isReplAssignName) nameString(sym.name)
2313
else keyString(sym) ~~ nameString(sym.name.stripModuleClassSuffix)

compiler/src/dotty/tools/repl/ReplDriver.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class ReplDriver(settings: Array[String],
9494
val rootCtx = initCtx.fresh.addMode(Mode.ReadPositions).addMode(Mode.Interactive)
9595
val ictx = setup(settings, rootCtx)._2.fresh
9696
ictx.base.initialize()(ictx)
97+
ictx.setSetting(ictx.settings.YprintRepl, true)
9798
ictx
9899
}
99100

compiler/src/dotty/tools/repl/package.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package object repl {
2020

2121
private[repl] implicit class ShowUser(val s: Symbol) extends AnyVal {
2222
def showUser(implicit ctx: Context): String = {
23+
assert(ctx.settings.YprintRepl.value)
2324
val printer = new UserFacingPrinter(ctx)
2425
val text = printer.dclText(s)
2526
text.mkString(ctx.settings.pageWidth.value, ctx.settings.printLines.value)

0 commit comments

Comments
 (0)