diff options
author | Vlad Ureche <vlad.ureche@epfl.ch> | 2014-11-07 16:00:22 +0100 |
---|---|---|
committer | Vlad Ureche <vlad.ureche@epfl.ch> | 2014-11-07 16:00:22 +0100 |
commit | b431a4bd83d3bfb2b95d0426d2905b34ce1265ad (patch) | |
tree | c2a4d9f27aaa1cc075599986ce87256d866431a0 | |
parent | f7c3c6bc37228a70e06d5542ed4927bf3614486f (diff) | |
parent | 6b9f5437e84b4bbb021dba6af58851ba54c3c0b7 (diff) | |
download | scala-b431a4bd83d3bfb2b95d0426d2905b34ce1265ad.tar.gz scala-b431a4bd83d3bfb2b95d0426d2905b34ce1265ad.tar.bz2 scala-b431a4bd83d3bfb2b95d0426d2905b34ce1265ad.zip |
Merge pull request #4105 from gourlaysama/wip/t5730-scaladoc-sealed-ctor
SI-5730 hide constructors of sealed abstract classes in scaladoc
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala | 6 | ||||
-rw-r--r-- | test/scaladoc/run/t5730.check | 1 | ||||
-rw-r--r-- | test/scaladoc/run/t5730.scala | 36 |
3 files changed, 41 insertions, 2 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala index ef84ac42ba..7a67055ffa 100644 --- a/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala @@ -753,8 +753,10 @@ class ModelFactory(val global: Global, val settings: doc.Settings) { }) } else if (bSym.isConstructor) - if (conversion.isDefined) - None // don't list constructors inherted by implicit conversion + if (conversion.isDefined || (bSym.enclClass.isAbstract && (bSym.enclClass.isSealed || bSym.enclClass.isFinal))) + // don't list constructors inherited by implicit conversion + // and don't list constructors of abstract sealed types (they cannot be accessed anyway) + None else Some(new NonTemplateParamMemberImpl(bSym, conversion, useCaseOf, inTpl) with Constructor { override def isConstructor = true diff --git a/test/scaladoc/run/t5730.check b/test/scaladoc/run/t5730.check new file mode 100644 index 0000000000..619c56180b --- /dev/null +++ b/test/scaladoc/run/t5730.check @@ -0,0 +1 @@ +Done. diff --git a/test/scaladoc/run/t5730.scala b/test/scaladoc/run/t5730.scala new file mode 100644 index 0000000000..cc4c2444b1 --- /dev/null +++ b/test/scaladoc/run/t5730.scala @@ -0,0 +1,36 @@ +import scala.tools.nsc.doc.base._ +import scala.tools.nsc.doc.model._ +import scala.tools.partest.ScaladocModelTest + +object Test extends ScaladocModelTest { + + override def code = """ + package scala.test.scaladoc.T5730 + + /** + * A link: + * + * [[scala.Option$ object Option]]. + */ + sealed abstract class A + + case object B extends A + + abstract final class C + """ + + 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._ + + val p = rootPackage._package("scala")._package("test")._package("scaladoc")._package("T5730") + + val a = p._class("A") + val c = p._class("C") + + assert(a.constructors.isEmpty, s"there should be no constructors, found: ${a.constructors}") + assert(c.constructors.isEmpty, s"there should be no constructors, found: ${c.constructors}") + } +} |