diff options
author | Antoine Gourlay <antoine@gourlay.fr> | 2014-11-04 14:28:48 +0100 |
---|---|---|
committer | Antoine Gourlay <antoine@gourlay.fr> | 2014-11-07 09:44:08 +0100 |
commit | 6b9f5437e84b4bbb021dba6af58851ba54c3c0b7 (patch) | |
tree | c2a4d9f27aaa1cc075599986ce87256d866431a0 /src | |
parent | f7c3c6bc37228a70e06d5542ed4927bf3614486f (diff) | |
download | scala-6b9f5437e84b4bbb021dba6af58851ba54c3c0b7.tar.gz scala-6b9f5437e84b4bbb021dba6af58851ba54c3c0b7.tar.bz2 scala-6b9f5437e84b4bbb021dba6af58851ba54c3c0b7.zip |
SI-5730 hide constructors of sealed abstract classes in scaladoc
Sealed abstract classes (like `List`) have a primary constructor, public
by default. It can never be called by external code but it shows up in
the scaladoc as a nice `new List()` construtor...
If a class is only abstract, the constructor is still useful because
people can subclass and call it. If it is only sealed (i.e. effectively final),
then it is the normal constructor of a final class. But sealed *and*
abstract makes documenting the constructor useless.
This should remove the misleading constructors of `List`, `Double`,
`Option` and others from the scaladoc.
Diffstat (limited to 'src')
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/model/ModelFactory.scala | 6 |
1 files changed, 4 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 |