Skip to content

Commit 54ff628

Browse files
Merge pull request #13753 from BarkingBad/scaladoc/fix-fbounded-types-signatures
Fix F-Bounded types signatures
2 parents af9594d + 321f36a commit 54ff628

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package tests
2+
package fboundedTypeParameters
3+
4+
trait AOps[X[_]]
5+
trait A[T] extends AOps[A]

scaladoc/src/dotty/tools/scaladoc/api.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,13 @@ case class TypeParameter(
119119

120120
case class Link(name: String, dri: DRI)
121121

122-
sealed trait SignaturePart
122+
sealed trait SignaturePart:
123+
val name: String
123124

124125
// TODO (longterm) properly represent signatures
125-
case class Type(name: String, dri: Option[DRI]) extends SignaturePart
126-
case class Keyword(name: String) extends SignaturePart
127-
case class Plain(txt: String) extends SignaturePart
126+
case class Type(override val name: String, dri: Option[DRI]) extends SignaturePart
127+
case class Keyword(override val name: String) extends SignaturePart
128+
case class Plain(override val name: String) extends SignaturePart
128129

129130
type Signature = List[SignaturePart]
130131

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ trait TypesSupport:
104104
inner(tpe) :+ plain("*")
105105
case AnnotatedType(tpe, _) =>
106106
inner(tpe)
107-
case tl @ TypeLambda(params, paramBounds, resType@AppliedType(tpe, args))
108-
if paramBounds.map(inner).forall(_.isEmpty) && params.zip(args.map(inner)).forall(List(_) == _) =>
107+
case tl @ TypeLambda(params, paramBounds, AppliedType(tpe, args))
108+
if paramBounds.map(inner).forall(_.isEmpty) && params.zip(args.map(inner).flatten.map(_.name)).forall(_ == _) =>
109109
inner(tpe)
110110
case tl @ TypeLambda(params, paramBounds, resType) =>
111111
plain("[").l ++ commas(params.zip(paramBounds).map { (name, typ) =>

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

+2
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,5 @@ class ImplicitConversionsTest3 extends SignatureTest(
8686
class SpecializedSignature extends SignatureTest("specializedSignature", SignatureTest.all)
8787

8888
class ContextBounds extends SignatureTest("contextBounds", SignatureTest.all)
89+
90+
class FBoundedTypeParameters extends SignatureTest("fboundedTypeParameters", SignatureTest.all)

0 commit comments

Comments
 (0)