summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@epfl.ch>2014-11-07 16:00:22 +0100
committerVlad Ureche <vlad.ureche@epfl.ch>2014-11-07 16:00:22 +0100
commitb431a4bd83d3bfb2b95d0426d2905b34ce1265ad (patch)
treec2a4d9f27aaa1cc075599986ce87256d866431a0
parentf7c3c6bc37228a70e06d5542ed4927bf3614486f (diff)
parent6b9f5437e84b4bbb021dba6af58851ba54c3c0b7 (diff)
downloadscala-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.scala6
-rw-r--r--test/scaladoc/run/t5730.check1
-rw-r--r--test/scaladoc/run/t5730.scala36
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}")
+ }
+}