Skip to content

Commit 594652f

Browse files
committed
Apply requested changes, fix SignatureTests parser, fix type alliance for vals, add some tests
1 parent d0babf6 commit 594652f

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

scala3doc-testcases/src/tests/typeAppliance.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ trait AClass[A, B]:
66

77
trait BClass[A, B] extends AClass[A, B]:
88
override def funASD[X, D](f: B => X): BClass[A, X]
9-
val f: (=> B) => String = _ => "abc"
9+
val f: (=> B) => String
10+
= _ => "abc"
1011

1112

1213
abstract class CClass[U] extends BClass[Int, U]:
13-
def xdxdkk(n: Int)(b: Int): Int = 1
14-
def isByNameType: String = "xd"
15-
def vararg1(a: A*): C
14+
def someFun(n: Int)(b: Int): Int
15+
= 1
16+

scala3doc/src/dotty/dokka/tasty/ClassLikeSupport.scala

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ trait ClassLikeSupport:
389389
inlinePrefix + prefix(argument.symbol),
390390
nameIfNotSynthetic,
391391
argument.symbol.dri,
392-
memberInfo.flatMap(_.get(name).map(_.dokkaType.asSignature)).getOrElse(argument.tpt.dokkaType.asSignature),
392+
memberInfo.flatMap(_.get(name)).fold(argument.tpt.dokkaType.asSignature)(_.dokkaType.asSignature),
393393
isExtendedSymbol,
394394
isGrouped
395395
)
@@ -405,7 +405,7 @@ trait ClassLikeSupport:
405405
variancePrefix,
406406
name,
407407
argument.symbol.dri,
408-
memberInfo.flatMap(_.get(name).map(_.dokkaType.asSignature)).getOrElse(argument.rhs.dokkaType.asSignature)
408+
memberInfo.flatMap(_.get(name)).fold(argument.rhs.dokkaType.asSignature)(_.dokkaType.asSignature)
409409
)
410410

411411
def parseTypeDef(typeDef: TypeDef): Member =
@@ -479,9 +479,7 @@ trait ClassLikeSupport:
479479
case class MemberInfo(genericTypes: Map[String, TypeBounds], paramLists: List[Map[String, TypeRepr]], res: TypeRepr)
480480

481481
def unwrapMemberInfo(c: ClassDef, symbol: Symbol): MemberInfo =
482-
val baseTypeRepr = typeForClass(c).asInstanceOf[dotty.tools.dotc.core.Types.Type]
483-
.memberInfo(symbol.asInstanceOf[dotty.tools.dotc.core.Symbols.Symbol])(using qctx.asInstanceOf[scala.quoted.runtime.impl.QuotesImpl].ctx)
484-
.asInstanceOf[TypeRepr]
482+
val baseTypeRepr = memberInfo(c, symbol)
485483

486484
def handlePolyType(polyType: PolyType): MemberInfo =
487485
MemberInfo(polyType.paramNames.zip(polyType.paramBounds).toMap, List.empty, polyType.resType)

scala3doc/src/dotty/dokka/tasty/SyntheticSupport.scala

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,12 @@ trait SyntheticsSupport:
105105
given dotc.core.Contexts.Context = qctx.asInstanceOf[scala.quoted.runtime.impl.QuotesImpl].ctx
106106
val cSym = c.symbol.asInstanceOf[dotc.core.Symbols.Symbol]
107107
cSym.typeRef.appliedTo(cSym.typeParams.map(_.typeRef)).asInstanceOf[TypeRepr]
108-
108+
109+
def memberInfo(c: ClassDef, symbol: Symbol): TypeRepr =
110+
import qctx.reflect._
111+
import dotty.tools.dotc
112+
given dotc.core.Contexts.Context = qctx.asInstanceOf[scala.quoted.runtime.impl.QuotesImpl].ctx
113+
typeForClass(c).asInstanceOf[dotc.core.Types.Type]
114+
.memberInfo(symbol.asInstanceOf[dotc.core.Symbols.Symbol])
115+
.asInstanceOf[TypeRepr]
116+

scala3doc/src/dotty/dokka/tasty/TypesSupport.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,10 @@ trait TypesSupport:
174174
case Seq(rtpe) =>
175175
text("() => ") :: inner(rtpe)
176176
case Seq(arg, rtpe) =>
177-
inner(arg) ++ texts(" => ") ++ inner(rtpe)
177+
val ar = arg match
178+
case a: ByNameType => texts("(") ++ inner(a) ++ texts(")")
179+
case o => inner(o)
180+
ar ++ texts(" => ") ++ inner(rtpe)
178181
case args =>
179182
texts("(") ++ commas(args.init.map(inner)) ++ texts(") => ") ++ inner(args.last)
180183
else if t.isTupleType then

scala3doc/test/dotty/dokka/SignatureTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ abstract class SignatureTest(
9898
case unexpectedRegex(signature) => findName(signature, kinds).map(Unexpected(_))
9999
case expectedRegex(signature) => findName(signature, kinds).map(Expected(_, signature))
100100
case signature =>
101-
findName(signature, kinds).map(Expected(_, commentRegex.replaceAllIn(signature, "").compactWhitespaces))
101+
findName(signature, kinds).map(Expected(_, commentRegex.replaceAllIn(signature, "").compactWhitespaces.reverse.dropWhile(List('{', ':').contains(_)).reverse))
102102
}
103103

104104
private def signaturesFromDocumentation(root: PageNode)(using DocContext): Seq[String] =

scala3doc/test/dotty/dokka/SignatureTestCases.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class FieldsSignatures extends SignatureTest("fieldsSignatures", SignatureTest.a
3131

3232
class NestedSignatures extends SignatureTest("nested", SignatureTest.all)
3333

34+
class TypeAppliacneSignatures extends SignatureTest("typeAppliance", SignatureTest.all)
35+
3436
class CompanionObjectSignatures extends SignatureTest("companionObjectSignatures", SignatureTest.all)
3537

3638
class PackageSymbolSignatures extends SignatureTest("packageSymbolSignatures", SignatureTest.all)
@@ -84,4 +86,4 @@ class ImplicitConversionsTest3 extends SignatureTest(
8486
filterFunc = _.toString.endsWith("ClassWithConversionWithProperType.html")
8587
)
8688

87-
class SpecializedSignature extends SignatureTest("specializedSignature", SignatureTest.all)
89+
class SpecializedSignature extends SignatureTest("specializedSignature", SignatureTest.all)

0 commit comments

Comments
 (0)