diff --git a/scala3doc-testcases/src/tests/overrides.scala b/scala3doc-testcases/src/tests/overrides.scala index edb28e76f469..74a6592f811d 100644 --- a/scala3doc-testcases/src/tests/overrides.scala +++ b/scala3doc-testcases/src/tests/overrides.scala @@ -1,11 +1,13 @@ package tests package overrides -class A: +trait A: def defInt: Int = 1 -class B extends A: +trait B extends A: override def defInt: Int = 2 -class C extends B: - override def defInt: Int = 3 +trait C extends B + +class D extends C: + override def defInt: Int = 4 diff --git a/scala3doc/src/dotty/dokka/tasty/ClassLikeSupport.scala b/scala3doc/src/dotty/dokka/tasty/ClassLikeSupport.scala index 2ae9b454454d..d430b020c068 100644 --- a/scala3doc/src/dotty/dokka/tasty/ClassLikeSupport.scala +++ b/scala3doc/src/dotty/dokka/tasty/ClassLikeSupport.scala @@ -466,4 +466,4 @@ trait ClassLikeSupport: ctx.sourceSet.toSet, /*isExpectActual =*/ false, PropertyContainer.Companion.empty().plus(member.copy(rawDoc = symbol.documentation2)).plus(compositeExt) - ) \ No newline at end of file + ) diff --git a/scala3doc/src/dotty/renderers/MemberRenderer.scala b/scala3doc/src/dotty/renderers/MemberRenderer.scala index 35ab4473baa5..75fab3b7a182 100644 --- a/scala3doc/src/dotty/renderers/MemberRenderer.scala +++ b/scala3doc/src/dotty/renderers/MemberRenderer.scala @@ -32,13 +32,18 @@ class MemberRenderer(signatureRenderer: SignatureRenderer, buildNode: ContentNod def defintionClasses(m: Member) = m.origin match case Origin.Overrides(defs) => def renderDef(d: Overriden): Seq[TagArg] = - Seq(signatureRenderer.renderLink(d.name, d.dri), " -> ") - - val nodes: Seq[TagArg] = defs.flatMap(renderDef).dropRight(1) // drop trailing arrow + Seq(" -> ", signatureRenderer.renderLink(d.name, d.dri)) + val headNode = m.inheritedFrom.map(signatureRenderer.renderLink(_, _)) + val tailNodes = defs.flatMap(renderDef) + val nodes = headNode.fold(tailNodes.drop(1))(_ +: tailNodes) tableRow("Definition Classes", div(nodes:_*)) case _ => Nil + def inheritedFrom(m: Member) = m.inheritedFrom match + case Some(InheritedFrom(name, dri)) => tableRow("Inhertied from", signatureRenderer.renderLink(name, dri)) + case _ => Nil + def docAttributes(m: Member): Seq[AppliedTag] = def nested(name: String, on: SortedMap[String, DocPart]): Seq[AppliedTag] = @@ -113,6 +118,7 @@ class MemberRenderer(signatureRenderer: SignatureRenderer, buildNode: ContentNod companion(m), deprecation(m), defintionClasses(m), + inheritedFrom(m), source(m), ) ) @@ -361,4 +367,4 @@ class MemberRenderer(signatureRenderer: SignatureRenderer, buildNode: ContentNod memberInfo(m), classLikeParts(m), buildDocumentableFilter, // TODO Need to make it work in JS :( - buildMembers(m)) \ No newline at end of file + buildMembers(m))