diff options
author | Vlad Ureche <vlad.ureche@gmail.com> | 2012-07-02 19:43:38 +0200 |
---|---|---|
committer | Vlad Ureche <vlad.ureche@gmail.com> | 2012-07-16 23:41:44 +0200 |
commit | 8779ade6f57ef15a04babf9715bc7ca4cbbdc425 (patch) | |
tree | 678bd384c29e25ff87b32eed5e90bbc53c26c32b | |
parent | 242c2fc94766f4dd8b7f1f88ad055f0f62d2e109 (diff) | |
download | scala-8779ade6f57ef15a04babf9715bc7ca4cbbdc425.tar.gz scala-8779ade6f57ef15a04babf9715bc7ca4cbbdc425.tar.bz2 scala-8779ade6f57ef15a04babf9715bc7ca4cbbdc425.zip |
SI-4324 Scaladoc case class argument currying
case class C(i: Int)(b: Boolean) would appear uncurried in scaladoc:
case class C(i: Int, b: Boolean)
-rw-r--r-- | src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala | 5 | ||||
-rw-r--r-- | test/scaladoc/run/SI-4324.check | 1 | ||||
-rw-r--r-- | test/scaladoc/run/SI-4324.scala | 24 |
3 files changed, 29 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala index 61b4267f3c..25b4a174ec 100644 --- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala @@ -554,7 +554,10 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { new DocTemplateImpl(bSym, inTpl) with Class { def valueParams = // we don't want params on a class (non case class) signature - if (isCaseClass) List(sym.constrParamAccessors map (makeValueParam(_, this))) + if (isCaseClass) primaryConstructor match { + case Some(const) => const.sym.paramss map (_ map (makeValueParam(_, this))) + case None => List() + } else List.empty val constructors = members collect { case d: Constructor => d } diff --git a/test/scaladoc/run/SI-4324.check b/test/scaladoc/run/SI-4324.check new file mode 100644 index 0000000000..619c56180b --- /dev/null +++ b/test/scaladoc/run/SI-4324.check @@ -0,0 +1 @@ +Done. diff --git a/test/scaladoc/run/SI-4324.scala b/test/scaladoc/run/SI-4324.scala new file mode 100644 index 0000000000..686a133dc0 --- /dev/null +++ b/test/scaladoc/run/SI-4324.scala @@ -0,0 +1,24 @@ +import scala.tools.nsc.doc.model._ +import scala.tools.partest.ScaladocModelTest + +object Test extends ScaladocModelTest { + + override def code = """ + case class Test4324(arg11: String, arg12: Int)(arg21: String, arg22: Int)(arg31: Int, arg32: String) + """ + + // no need for special settings + def scaladocSettings = "" + + def testModel(rootPackage: Package) = { + // get the quick access implicit defs in scope (_package(s), _class(es), _trait(s), object(s) _method(s), _value(s)) + import access._ + + // just need to check the member exists, access methods will throw an error if there's a problem + rootPackage._class("Test4324").asInstanceOf[Class].valueParams match { + case List(List(arg11, arg12), List(arg21, arg22), List(arg31, arg32)) => //yeeey, do nothing + case other => + assert(false, "Incorrect valueParams generated: " + other + " instead of (arg11, arg12)(arg21, arg22)(arg31, arg32)") + } + } +}
\ No newline at end of file |