@@ -14,18 +14,25 @@ import dotty.dokka.model.api._
1414class ImplicitMembersExtensionTransformer (ctx : DokkaContext ) extends DocumentableTransformer :
1515 override def invoke (original : DModule , context : DokkaContext ): DModule =
1616 val classlikeMap = original.driMap
17+ val logger = context.getLogger
1718
18- def expandMember (outerMembers : Seq [Member ])(c : Member ): Member =
19- val companion = c match
20- case classlike : DClass => ClasslikeExtension .getFrom(classlike).flatMap(_.companion).flatMap(classlikeMap.get)
19+ def retrieveCompanion (m : Member ) = m match {
20+ case classlike : DClass =>
21+ val comp = ClasslikeExtension .getFrom(classlike).flatMap(_.companion)
22+ comp.flatMap { dri =>
23+ val res = classlikeMap.get(dri)
24+ if res.isEmpty then logger.warn(s " Companion for class ${classlike.name} exists but is missing in classlike map " )
25+ res
26+ }
2127 case _ => None
28+ }
29+
30+ def expandMember (outerMembers : Seq [Member ])(c : Member ): Member =
31+ val companion = retrieveCompanion(c)
2232
2333 val allParents = c.parents.flatMap(p => classlikeMap.get(p.dri))
2434
25- val parentCompanions = allParents.flatMap {
26- case cls : DClasslike => ClasslikeExtension .getFrom(cls).flatMap(_.companion).flatMap(classlikeMap.get)
27- case _ => None
28- }
35+ val parentCompanions = allParents.flatMap(retrieveCompanion)
2936
3037 // TODO (#220): We can expand this on generic etc
3138 val implictSources = outerMembers ++ companion.toSeq ++ parentCompanions
@@ -34,7 +41,7 @@ class ImplicitMembersExtensionTransformer(ctx: DokkaContext) extends Documentabl
3441
3542 val MyDri = c.getDri
3643 def collectApplicableMembers (source : Member ): Seq [Member ] = source.allMembers.flatMap {
37- case m @ Member (_, _, _, Kind .Extension (ExtensionTarget (_, _, MyDri )), Origin .DefinedWithin ) =>
44+ case m @ Member (_, _, _, Kind .Extension (ExtensionTarget (_, _, MyDri , _ )), Origin .DefinedWithin ) =>
3845 Seq (m.withOrigin(Origin .ExtensionFrom (source.name, source.dri)).withKind(Kind .Def ))
3946 case m @ Member (_, _, _, conversionProvider : ImplicitConversionProvider , Origin .DefinedWithin ) =>
4047 conversionProvider.conversion match
0 commit comments