Skip to content

Commit 48f0078

Browse files
committed
Cleanup JavadocAnchorCreator
1 parent eeec213 commit 48f0078

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

scaladoc/src/dotty/tools/scaladoc/tasty/JavadocAnchorCreator.scala

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,32 @@ import scala.quoted._
55
import dotty.tools.scaladoc.util.Escape._
66
import scala.util.matching.Regex
77

8-
trait JavadocAnchorCreator:
9-
self: SymOps[_] =>
8+
object JavadocAnchorCreator:
109

11-
import self.q.reflect._
10+
private def javadocPrimitives(using Quotes)(sym: quotes.reflect.Symbol) =
11+
import quotes.reflect.*
12+
if sym == defn.IntClass then Some("int")
13+
else if sym == defn.FloatClass then Some("float")
14+
else if sym == defn.DoubleClass then Some("double")
15+
else if sym == defn.LongClass then Some("long")
16+
else if sym == defn.ByteClass then Some("byte")
17+
else if sym == defn.BooleanClass then Some("boolean")
18+
else if sym == defn.CharClass then Some("char")
19+
else if sym == defn.ShortClass then Some("short")
20+
else if sym == defn.ObjectClass then Some("java.lang.Object")
21+
else None
1222

13-
private val javadocPrimitivesMap = Map(
14-
defn.IntClass -> "int",
15-
defn.FloatClass -> "float",
16-
defn.DoubleClass -> "double",
17-
defn.LongClass -> "long",
18-
defn.ByteClass -> "byte",
19-
defn.BooleanClass -> "boolean",
20-
defn.CharClass -> "char",
21-
defn.ShortClass -> "short",
22-
defn.ObjectClass -> "java.lang.Object"
23-
)
24-
25-
private def transformPrimitiveType(tpe: TypeRepr): String = tpe.classSymbol
26-
.flatMap(javadocPrimitivesMap.get)
23+
private def transformPrimitiveType(using Quotes)(tpe: quotes.reflect.TypeRepr): String = tpe.classSymbol
24+
.flatMap(javadocPrimitives)
2725
.filter(_ => !tpe.typeSymbol.isTypeParam)
2826
.getOrElse(tpe.show)
2927

30-
private def transformType(tpe: TypeRepr): String = tpe.simplified match {
31-
case AppliedType(tpe, typeList) if tpe.classSymbol.fold(false)(_ == defn.ArrayClass) => transformType(typeList.head) + ":A"
32-
case AppliedType(tpe, typeList) if tpe.classSymbol.fold(false)(_ == defn.RepeatedParamClass) => transformType(typeList.head) + "..."
33-
case AppliedType(tpe, typeList) => transformPrimitiveType(tpe)
34-
case other => transformPrimitiveType(other)
35-
}
28+
private def transformType(using Quotes)(tpe: quotes.reflect.TypeRepr): String =
29+
import quotes.reflect.*
30+
tpe.simplified match
31+
case AppliedType(tpe, typeList) if tpe.classSymbol.fold(false)(_ == defn.ArrayClass) => transformType(typeList.head) + ":A"
32+
case AppliedType(tpe, typeList) if tpe.classSymbol.fold(false)(_ == defn.RepeatedParamClass) => transformType(typeList.head) + "..."
33+
case AppliedType(tpe, typeList) => transformPrimitiveType(tpe)
34+
case other => transformPrimitiveType(other)
3635

37-
def getJavadocType(s: TypeRepr) = transformType(s)
36+
def getJavadocType(using Quotes)(s: quotes.reflect.TypeRepr) = transformType(s)

scaladoc/src/dotty/tools/scaladoc/tasty/SymOps.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import dotty.tools.scaladoc.util.Escape._
66
import scala.collection.mutable.{ Map => MMap }
77
import dotty.tools.io.AbstractFile
88
import Scaladoc2AnchorCreator.getScaladoc2Type
9+
import JavadocAnchorCreator.getJavadocType
910

10-
class SymOps[Q <: Quotes](val q: Q) extends JavadocAnchorCreator:
11+
class SymOps[Q <: Quotes](val q: Q):
1112
import q.reflect._
1213

1314
given q.type = q
@@ -129,7 +130,7 @@ class SymOps[Q <: Quotes](val q: Q) extends JavadocAnchorCreator:
129130
val javadocAnchor = if anchor.isDefined then {
130131
val paramSigs = sym.paramSymss.flatten.map(_.tree).collect {
131132
case v: ValDef => v.tpt.tpe
132-
}.map(getJavadocType)
133+
}.map(getJavadocType(using q))
133134
"#" + sym.name + paramSigs.mkString("-","-","-")
134135
} else ""
135136
docURL + l + extension + javadocAnchor

0 commit comments

Comments
 (0)