@@ -14,18 +14,25 @@ import dotty.dokka.model.api._
14
14
class ImplicitMembersExtensionTransformer (ctx : DokkaContext ) extends DocumentableTransformer :
15
15
override def invoke (original : DModule , context : DokkaContext ): DModule =
16
16
val classlikeMap = original.driMap
17
+ val logger = context.getLogger
17
18
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
+ }
21
27
case _ => None
28
+ }
29
+
30
+ def expandMember (outerMembers : Seq [Member ])(c : Member ): Member =
31
+ val companion = retrieveCompanion(c)
22
32
23
33
val allParents = c.parents.flatMap(p => classlikeMap.get(p.dri))
24
34
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)
29
36
30
37
// TODO (#220): We can expand this on generic etc
31
38
val implictSources = outerMembers ++ companion.toSeq ++ parentCompanions
@@ -34,7 +41,7 @@ class ImplicitMembersExtensionTransformer(ctx: DokkaContext) extends Documentabl
34
41
35
42
val MyDri = c.getDri
36
43
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 ) =>
38
45
Seq (m.withOrigin(Origin .ExtensionFrom (source.name, source.dri)).withKind(Kind .Def ))
39
46
case m @ Member (_, _, _, conversionProvider : ImplicitConversionProvider , Origin .DefinedWithin ) =>
40
47
conversionProvider.conversion match
0 commit comments