Skip to content

Commit a21585d

Browse files
committed
Uniformize ScalaSignatureUtils param methods
1 parent e7959c2 commit a21585d

File tree

4 files changed

+27
-21
lines changed

4 files changed

+27
-21
lines changed

scaladoc/src/dotty/tools/scaladoc/renderers/MemberRenderer.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,10 +313,10 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
313313
case (Some(on), members) =>
314314
val typeSig = SignatureBuilder()
315315
.keyword("extension ")
316-
.generics(on.typeParams)
316+
.typeParamList(on.typeParams)
317317
.content
318318
val argsSig = SignatureBuilder()
319-
.functionParameters(on.argsLists)
319+
.functionTermParameters(on.argsLists)
320320
.content
321321
val sig = typeSig ++ Signature(Plain(s"(${on.name}: ")) ++ on.signature ++ Signature(Plain(")")) ++ argsSig
322322
MGroup(span(cls := "groupHeader")(sig.map(renderElement(_))), members.sortBy(_.name).toSeq, on.name) -> on.position

scaladoc/src/dotty/tools/scaladoc/renderers/Resources.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,10 @@ trait Resources(using ctx: DocContext) extends Locations, Writer:
169169
case Kind.Extension(on, _) =>
170170
val typeSig = SignatureBuilder()
171171
.keyword("extension ")
172-
.generics(on.typeParams)
172+
.typeParamList(on.typeParams)
173173
.content
174174
val argsSig = SignatureBuilder()
175-
.functionParameters(on.argsLists)
175+
.functionTermParameters(on.argsLists)
176176
.content
177177
flattenToText(typeSig ++ argsSig)
178178
case _ => ""

scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureProvider.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ class ScalaSignatureProvider:
5858
builder.kind(showKind),
5959
builder.name(member.name, member.dri),
6060
builder
61-
.generics(kind.typeParams)
62-
.functionParameters(kind.argsLists)
61+
.typeParamList(kind.typeParams)
62+
.functionTermParameters(kind.argsLists)
6363
.parentsSignature(member)
6464
)
6565

@@ -106,8 +106,8 @@ class ScalaSignatureProvider:
106106
builder.kind(showKind),
107107
builder.name(method.name, method.dri),
108108
builder
109-
.generics(kind.typeParams)
110-
.functionParameters(kind.argsLists)
109+
.typeParamList(kind.typeParams)
110+
.functionTermParameters(kind.argsLists)
111111
.pipe { builder =>
112112
instance.fold(builder)(i => builder.plain(": ").signature(i))
113113
}
@@ -151,7 +151,7 @@ class ScalaSignatureProvider:
151151
builder.modifiersAndVisibility(typeDef),
152152
builder.kind(tpe),
153153
builder.name(typeDef.name, typeDef.dri),
154-
builder.generics(tpe.typeParams).pipe { bdr =>
154+
builder.typeParamList(tpe.typeParams).pipe { bdr =>
155155
if (!tpe.opaque) {
156156
(if tpe.concreate then bdr.plain(" = ") else bdr)
157157
.signature(typeDef.signature)

scaladoc/src/dotty/tools/scaladoc/translators/ScalaSignatureUtils.scala

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,27 @@ case class SignatureBuilder(content: Signature = Nil) extends ScalaSignatureUtil
7474
def kind(k: Kind) =
7575
keyword(k.name + " ")
7676

77-
def generics(on: Seq[TypeParameter]) = list(on.toList, List(Plain("[")), List(Plain("]"))){ (bdr, e) =>
77+
78+
def functionParameters(paramss: Seq[ Either[TermParameterList,TypeParameterList] ]) =
79+
this.list(paramss, separator = List(Plain(""))) {
80+
case (bld, Left(params: TermParameterList)) => bld.termParamList(params)
81+
case (bld, Right(params: TypeParameterList)) => bld.typeParamList(params)
82+
}
83+
84+
def termParamList(params: TermParameterList) =
85+
this.list(params.parameters, prefix = List(Plain("("), Keyword(params.modifiers)), suffix = List(Plain(")")), forcePrefixAndSuffix = true) { (bld, p) =>
86+
val annotationsAndModifiers = bld.annotationsInline(p)
87+
.keyword(p.modifiers)
88+
val name = p.name.fold(annotationsAndModifiers)(annotationsAndModifiers.name(_, p.dri).plain(": "))
89+
name.signature(p.signature)
90+
}
91+
92+
def typeParamList(on: TypeParameterList) = list(on.toList, List(Plain("[")), List(Plain("]"))){ (bdr, e) =>
7893
bdr.annotationsInline(e).keyword(e.variance).tpe(e.name, Some(e.dri)).signature(e.signature)
7994
}
8095

81-
def functionParameters(params: Seq[TermParameterList]) =
82-
if params.isEmpty then this.plain("")
83-
else if params.size == 1 && params(0).parameters == Nil then this.plain("()")
84-
else this.list(params, separator = List(Plain(""))) { (bld, pList) =>
85-
bld.list(pList.parameters, prefix = List(Plain("("), Keyword(pList.modifiers)), suffix = List(Plain(")")), forcePrefixAndSuffix = true) { (bld, p) =>
86-
val annotationsAndModifiers = bld.annotationsInline(p)
87-
.keyword(p.modifiers)
88-
val name = p.name.fold(annotationsAndModifiers)(annotationsAndModifiers.name(_, p.dri).plain(": "))
89-
name.signature(p.signature)
90-
}
91-
}
96+
def functionTermParameters(paramss: Seq[TermParameterList]) =
97+
this.list(paramss, separator = List(Plain(""))) { (bld, pList) => bld.termParamList(pList) }
9298

9399
trait ScalaSignatureUtils:
94100
extension (tokens: Seq[String]) def toSignatureString(): String =

0 commit comments

Comments
 (0)