aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-09-26 13:46:26 +0200
committerMartin Odersky <odersky@gmail.com>2016-09-26 13:46:26 +0200
commit517aafc8e42f7204debdd2d9bff30c9fb90fab98 (patch)
tree063b9e8dbfb819614414aaf20ae3e2a1fa14c10e /src/dotty/tools/dotc/printing
parent41ff7c286525855e345fc0641481a7cd9ec2ccee (diff)
downloaddotty-517aafc8e42f7204debdd2d9bff30c9fb90fab98.tar.gz
dotty-517aafc8e42f7204debdd2d9bff30c9fb90fab98.tar.bz2
dotty-517aafc8e42f7204debdd2d9bff30c9fb90fab98.zip
Eliminate tpd.Modifiers.
Backend does not need them after all, can just use nulls there. So the functionality is only used for printing, and it makes sense to move everything there.
Diffstat (limited to 'src/dotty/tools/dotc/printing')
-rw-r--r--src/dotty/tools/dotc/printing/RefinedPrinter.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
index 8b91d1a7a..205d2b6b9 100644
--- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala
+++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
@@ -163,9 +163,14 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
/** Print modifiers from symbols if tree has type, overriding the untpd behavior. */
implicit def modsDeco(mdef: untpd.MemberDef)(implicit ctx: Context): untpd.ModsDecorator =
new untpd.ModsDecorator {
- def mods = if (mdef.hasType) tpd.Modifiers(mdef.symbol) else mdef.rawMods
+ def mods = if (mdef.hasType) Modifiers(mdef.symbol) else mdef.rawMods
}
+ def Modifiers(sym: Symbol)(implicit ctx: Context): Modifiers = untpd.Modifiers(
+ sym.flags & (if (sym.isType) ModifierFlags | VarianceFlags else ModifierFlags),
+ if (sym.privateWithin.exists) sym.privateWithin.asType.name else tpnme.EMPTY,
+ sym.annotations map (_.tree))
+
def isLocalThis(tree: Tree) = tree.typeOpt match {
case tp: ThisType => tp.cls == ctx.owner.enclosingClass
case _ => false