Skip to content

Commit 7e3fc7f

Browse files
committed
Fix F-Bounded types signatures
1 parent af9594d commit 7e3fc7f

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-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

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dotty.tools.scaladoc.signatures
22

3+
import java.security.Signature
4+
35
class GenericSignaftures extends SignatureTest("genericSignatures", Seq("class"))
46

57
class ObjectSignatures extends SignatureTest("objectSignatures", Seq("object"))
@@ -86,3 +88,5 @@ class ImplicitConversionsTest3 extends SignatureTest(
8688
class SpecializedSignature extends SignatureTest("specializedSignature", SignatureTest.all)
8789

8890
class ContextBounds extends SignatureTest("contextBounds", SignatureTest.all)
91+
92+
class FBoundedTypeParameters extends SignatureTest("fboundedTypeParameters", SignatureTest.all)

0 commit comments

Comments
 (0)