Skip to content

Commit f4a8983

Browse files
Merge pull request #14546 from jchyb/scaladoc/searchbar-inherited-hidden
Scaladoc: fix #14481: certain functions not being shown in searchbar
2 parents 1a5b165 + 598b8d3 commit f4a8983

File tree

7 files changed

+18
-5
lines changed

7 files changed

+18
-5
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package tests
2+
package inheritedMembersFromHidden
3+
4+
private[inheritedMembersFromHidden] trait HiddenTrait { //unexpected
5+
def method: Unit
6+
= ???
7+
}
8+
9+
object PublicObject extends HiddenTrait //expected: object PublicObject

scaladoc/src/dotty/tools/scaladoc/api.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ enum Origin:
8383

8484
case class Overridden(name: String, dri: DRI)
8585

86-
case class InheritedFrom(name: String, dri: DRI)
86+
case class InheritedFrom(name: String, dri: DRI, isSourceSuperclassHidden: Boolean)
8787

8888
case class Annotation(val dri: DRI, val params: List[Annotation.AnnotationParameter])
8989

scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
2929
case _ => Nil
3030

3131
def inheritedFrom(m: Member) = m.inheritedFrom match
32-
case Some(InheritedFrom(name, dri)) => tableRow("Inherited from:", signatureRenderer.renderLink(name, dri))
32+
case Some(InheritedFrom(name, dri, isSourceSuperclassHidden)) =>
33+
val hiddenNameSuffix = if isSourceSuperclassHidden then " (hidden)" else ""
34+
tableRow("Inherited from:", signatureRenderer.renderLink(name + hiddenNameSuffix, dri))
3335
case _ => Nil
3436

3537
def docAttributes(m: Member): Seq[AppliedTag] =

scaladoc/src/dotty/tools/scaladoc/renderers/Resources.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ trait Resources(using ctx: DocContext) extends Locations, Writer:
151151
val entry = mkEntry(member.dri, member.name, flattenToText(sig), descr, member.kind.name)
152152
val children = member
153153
.membersBy(m => m.kind != Kind.Package && !m.kind.isInstanceOf[Classlike])
154-
.filter(m => m.origin == Origin.RegularlyDefined && m.inheritedFrom.isEmpty)
154+
.filter(m => m.origin == Origin.RegularlyDefined && m.inheritedFrom.fold(false)(_.isSourceSuperclassHidden))
155155
Seq(entry) ++ children.flatMap(processMember)
156156

157157
processMember(m)

scaladoc/src/dotty/tools/scaladoc/tasty/ClassLikeSupport.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ trait ClassLikeSupport:
183183
}
184184

185185
private def parseInheritedMember(c: ClassDef)(s: Tree): Option[Member] =
186-
def inheritance = Some(InheritedFrom(s.symbol.owner.normalizedName, s.symbol.dri))
186+
def inheritance = Some(InheritedFrom(s.symbol.owner.normalizedName, s.symbol.dri, s.symbol.owner.isHiddenByVisibility))
187187
processTreeOpt(s)(s match
188188
case c: ClassDef if c.symbol.shouldDocumentClasslike => Some(parseClasslike(c, signatureOnly = true))
189189
case other => {

scaladoc/src/dotty/tools/scaladoc/translators/FilterAttributes.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object FilterAttributes:
1414
Map("visibility" -> m.visibility.name)
1515

1616
private def inheritedFrom(m: Member): Map[String, String] = m.inheritedFrom match
17-
case Some(InheritedFrom(name, _)) => Map("inherited" -> name)
17+
case Some(InheritedFrom(name, _, _)) => Map("inherited" -> name)
1818
case _ => Map.empty
1919

2020
private def origin(m: Member): Map[String, String] = m.origin match

scaladoc/test/dotty/tools/scaladoc/signatures/TranslatableSignaturesTestCases.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ class InheritanceLoop extends SignatureTest("inheritanceLoop", SignatureTest.all
5858
class InheritedMembers extends SignatureTest("inheritedMembers2", SignatureTest.all.filter(_ != "class"),
5959
sourceFiles = List("inheritedMembers1", "inheritedMembers2"))
6060

61+
class InheritedFromHiddenClasslike extends SignatureTest("inheritedMembersFromHidden", SignatureTest.all)
62+
6163
class ComplexNames extends SignatureTest("complexNames", Seq("def", "class"))
6264

6365
class WrongDocumentationLinks extends SignatureTest("links", Seq("def"))

0 commit comments

Comments
 (0)