diff options
author | Martin Odersky <odersky@gmail.com> | 2016-09-26 13:46:26 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-09-26 13:46:26 +0200 |
commit | 517aafc8e42f7204debdd2d9bff30c9fb90fab98 (patch) | |
tree | 063b9e8dbfb819614414aaf20ae3e2a1fa14c10e /src/dotty/tools/dotc/printing | |
parent | 41ff7c286525855e345fc0641481a7cd9ec2ccee (diff) | |
download | dotty-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.scala | 7 |
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 |