Skip to content

Commit 7dc1bbc

Browse files
committed
Fix signatures of implicitly added methods. Fix implicit members resolution
1 parent e2e2885 commit 7dc1bbc

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

scaladoc-testcases/src/tests/implicitMembers.scala

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,13 @@ package tests
33
package implicitMembers
44

55
class OuterClass:
6-
class ImplicitMemberTarget
76

7+
class ImplicitMemberTarget
88
object ImplicitMemberTarget:
9-
extension (a: ImplicitMemberTarget)
10-
def extensionFromCompanion: String =
11-
"ImplicitMemberTarget"
12-
13-
// does not work
14-
extension (a: ImplicitMemberTarget)
15-
def extensionFromOuterClass: String =
16-
"ImplicitMemberTarget"
9+
extension (a: ImplicitMemberTarget) def extensionFromCompanion(i: Int): String//expected: def extensionFromCompanion(i: Int): String
10+
= "ImplicitMemberTarget"
11+
extension (a: ImplicitMemberTarget) def extensionFromOuterClass(i: Int): String//expected: def extensionFromOuterClass(i: Int): String
12+
= "ImplicitMemberTarget"
1713

18-
extension (a: OuterClass#ImplicitMemberTarget)
19-
def extensionFromPackage: String =
20-
"ImplicitMemberTarget"
14+
extension (a: OuterClass#ImplicitMemberTarget) def extensionFromPackage(i: Int): String//expected: def extensionFromPackage(i: Int): String
15+
= "ImplicitMemberTarget"

scaladoc/src/dotty/tools/scaladoc/transformers/ImplicitMembersExtensionTransformer.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ImplicitMembersExtensionTransformer(using DocContext) extends(Module => Mo
2828
def collectApplicableMembers(source: Member): Seq[Member] = source.members.flatMap {
2929
case m @ Member(_, _, _, Kind.Extension(ExtensionTarget(_, _, _, _, MyDri, _), _), Origin.RegularlyDefined) =>
3030
val kind = m.kind match
31-
case d: Kind.Def => d
31+
case Kind.Extension(_, d) => d
3232
case _ => Kind.Def(Nil, Nil)
3333

3434
Seq(m.withOrigin(Origin.ExtensionFrom(source.name, source.dri)).withKind(kind))
@@ -44,12 +44,12 @@ class ImplicitMembersExtensionTransformer(using DocContext) extends(Module => Mo
4444
}
4545
case _ =>
4646
Nil
47-
case _ =>
47+
case other =>
4848
None
4949
}
5050

5151
val newImplicitMembers = implictSources.flatMap(collectApplicableMembers).distinct
52-
val expandedMembers = c.members.map(expandMember(newImplicitMembers ++ Seq(c)))
52+
val expandedMembers = c.members.map(expandMember(outerMembers ++ Seq(c)))
5353
c.withMembers(newImplicitMembers ++ expandedMembers)
5454

5555
original.updatePackages(_.map(expandMember(Nil)(_)))

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,9 @@ class ContextFunctions extends SignatureTest("contextfunctions", SignatureTest.a
9898
class MarkdownCode extends SignatureTest("markdowncode", SignatureTest.all)
9999

100100
class FunctionTypeSignatures extends SignatureTest("functionTypeSignatures", SignatureTest.all)
101+
102+
class ImplicitMembers extends SignatureTest(
103+
"implicitMembers",
104+
Seq("def"),
105+
filterFunc = _.toString.endsWith("OuterClass$ImplicitMemberTarget.html")
106+
)

0 commit comments

Comments
 (0)