Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Semi-Fix scaladoc of extensions methods #14321

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 30 additions & 8 deletions scaladoc-testcases/src/tests/extensionParams.scala
Original file line number Diff line number Diff line change
@@ -1,22 +1,44 @@
package tests.extensionParams

extension [A](thiz: A)
def toTuple2[B](that: B): (A, B) = thiz -> that

def toTuple2[B](that: B): (A, B)
= thiz -> that
extension [A](a: A)(using Int)
def f[B](b: B): (A, B) = ???
def f1[B](b: B): (A, B)
= ???

extension [A](a: A)(using Int)
def ff(b: A): (A, A) = ???
def f2(b: A): (A, A)
= ???

extension [A](a: A)(using Int)
def fff(using String)(b: A): (A, A) = ???
def f3(using String)(b: A): (A, A)
= ???

extension (a: Char)(using Int)
def ffff(using String)(b: Int): Unit = ???
def f4(using String)(b: Int): Unit
= ???

extension (a: Char)(using Int)
def fffff[B](using String)(b: B): Unit = ???
def f5[B](using String)(b: B): Unit
= ???

extension [A <: List[Char]](a: A)(using Int)
def ffffff[B](b: B): (A, B) = ???
def f6[B](b: B): (A, B)
= ???

extension [A <: List[Char]](using String)(using Unit)(a: A)(using Int)(using Number)
def f7[B, C](b: B)(c: C): (A, B)
= ???

extension [A <: List[Char]](using String)(using Unit)(a: A)(using Int)(using Number)
def f8(b: Any)(c: Any): Any
= ???

extension [A <: List[Char]](using String)(using Unit)(a: A)(using Int)(using Number)
def f9[B, C](using Int)(b: B)(c: C): (A, B)
= ???

extension [A <: List[Char]](using String)(using Unit)(a: A)(using Int)(using Number)
def f10(using Int)(b: Any)(c: Any): Any
= ???
23 changes: 15 additions & 8 deletions scaladoc/src/dotty/tools/scaladoc/api.scala
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,22 @@ enum Modifier(val name: String, val prefix: Boolean):
case Transparent extends Modifier("transparent", true)
case Infix extends Modifier("infix", true)

case class ExtensionTarget(name: String, typeParams: Seq[TypeParameter], argsLists: Seq[ParametersList], signature: Signature, dri: DRI, position: Long)
case class ExtensionTarget(name: String, typeParams: Seq[TypeParameter], argsLists: Seq[TermParametersList], signature: Signature, dri: DRI, position: Long)
case class ImplicitConversion(from: DRI, to: DRI)
trait ImplicitConversionProvider { def conversion: Option[ImplicitConversion] }
trait Classlike

enum Kind(val name: String):
case RootPackage extends Kind("")
case Package extends Kind("package")
case Class(typeParams: Seq[TypeParameter], argsLists: Seq[ParametersList])
case Class(typeParams: Seq[TypeParameter], argsLists: Seq[TermParametersList])
extends Kind("class") with Classlike
case Object extends Kind("object") with Classlike
case Trait(typeParams: Seq[TypeParameter], argsLists: Seq[ParametersList])
case Trait(typeParams: Seq[TypeParameter], argsLists: Seq[TermParametersList])
extends Kind("trait") with Classlike
case Enum(typeParams: Seq[TypeParameter], argsLists: Seq[ParametersList]) extends Kind("enum") with Classlike
case Enum(typeParams: Seq[TypeParameter], argsLists: Seq[TermParametersList]) extends Kind("enum") with Classlike
case EnumCase(kind: Object.type | Kind.Type | Val.type | Class) extends Kind("case")
case Def(typeParams: Seq[TypeParameter], argsLists: Seq[ParametersList])
case Def(params: Seq[TypeParametersList | TermParametersList]) // TODO: sc
extends Kind("def")
case Extension(on: ExtensionTarget, m: Kind.Def) extends Kind("def")
case Constructor(base: Kind.Def) extends Kind("def")
Expand Down Expand Up @@ -94,12 +94,15 @@ object Annotation:
case class LinkParameter(name: Option[String] = None, dri: DRI, value: String) extends AnnotationParameter
case class UnresolvedParameter(name: Option[String] = None, unresolvedText: String) extends AnnotationParameter

case class ParametersList(
parameters: Seq[Parameter],

// type ParametersList = TermParametersList | TypeParametersList // TODO: sc

case class TermParametersList(
parameters: Seq[TermParameter],
modifiers: String
)

case class Parameter(
case class TermParameter(
annotations: Seq[Annotation],
modifiers: String,
name: Option[String],
Expand All @@ -109,6 +112,10 @@ case class Parameter(
isGrouped: Boolean = false
)

case class TypeParametersList(
parameters: Seq[TypeParameter]
)

case class TypeParameter(
annotations: Seq[Annotation],
variance: "" | "+" | "-",
Expand Down
Loading