diff options
author | Martin Odersky <odersky@gmail.com> | 2014-09-21 15:03:29 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-10-11 08:24:36 +0200 |
commit | 96f754c92713d1a199b844fe5501dafaad45d7cb (patch) | |
tree | e926f1d2d664ab25163308143828261b3da5777d /src/dotty/tools/dotc/printing/RefinedPrinter.scala | |
parent | 330773619d01b9f684676ec4253b3d76c4807222 (diff) | |
download | dotty-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.scala | 7 |
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 { |