aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/RefinedPrinter.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-09-21 15:03:29 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-11 08:24:36 +0200
commit96f754c92713d1a199b844fe5501dafaad45d7cb (patch)
treee926f1d2d664ab25163308143828261b3da5777d /src/dotty/tools/dotc/printing/RefinedPrinter.scala
parent330773619d01b9f684676ec4253b3d76c4807222 (diff)
downloaddotty-96f754c92713d1a199b844fe5501dafaad45d7cb.tar.gz
dotty-96f754c92713d1a199b844fe5501dafaad45d7cb.tar.bz2
dotty-96f754c92713d1a199b844fe5501dafaad45d7cb.zip
Add constructors phase
Diffstat (limited to 'src/dotty/tools/dotc/printing/RefinedPrinter.scala')
-rw-r--r--src/dotty/tools/dotc/printing/RefinedPrinter.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
index d66d93a16..ae75bcb2d 100644
--- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala
+++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala
@@ -326,10 +326,11 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
typeDefText(optText(rhs)(" = " ~ _))
}
}
- case Template(DefDef(mods, _, tparams, vparamss, _, _), parents, self, stats) =>
+ case Template(constr @ DefDef(mods, _, tparams, vparamss, _, rhs), parents, self, stats) =>
val tparamsTxt = tparamsText(tparams)
+ val primaryConstrs = if (rhs.isEmpty) Nil else constr :: Nil
val prefix: Text =
- if (vparamss.isEmpty) tparamsTxt
+ if (vparamss.isEmpty || primaryConstrs.nonEmpty) tparamsTxt
else {
var modsText = modText(mods, "")
if (mods.hasAnnotations && !mods.hasFlags) modsText = modsText ~~ " this"
@@ -340,7 +341,7 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
val selfName = if (self.name == nme.WILDCARD) "this" else self.name.toString
(selfName ~ optText(self.tpt)(": " ~ _) ~ " =>").close
} provided !self.isEmpty
- val bodyText = "{" ~~ selfText ~~ toTextGlobal(stats, "\n") ~ "}"
+ val bodyText = "{" ~~ selfText ~~ toTextGlobal(primaryConstrs ::: stats, "\n") ~ "}"
prefix ~~ (" extends" provided ownerIsClass) ~~ parentsText ~~ bodyText
case Import(expr, selectors) =>
def selectorText(sel: Tree): Text = sel match {