From 10874a53b0db00c45d4ab44dfd226672dcf75115 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Wed, 26 Feb 2020 13:16:31 +0100 Subject: Sketch of default signature provider --- core/src/main/kotlin/model/Documentable.kt | 15 +++++++++------ core/src/main/kotlin/model/SignatureProvider.kt | 7 +++++++ 2 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 core/src/main/kotlin/model/SignatureProvider.kt (limited to 'core/src/main/kotlin/model') diff --git a/core/src/main/kotlin/model/Documentable.kt b/core/src/main/kotlin/model/Documentable.kt index c16f8a87..4190edc3 100644 --- a/core/src/main/kotlin/model/Documentable.kt +++ b/core/src/main/kotlin/model/Documentable.kt @@ -315,7 +315,7 @@ data class TypeParameter( override val dri: DRI, override val name: String, override val documentation: PlatformDependent, - val bounds: List, + val bounds: List, override val platformData: List, override val extra: PropertyContainer = PropertyContainer.empty() ) : Documentable(), WithExtraProperties { @@ -325,11 +325,14 @@ data class TypeParameter( override fun withNewExtras(newExtras: PropertyContainer) = copy(extra = newExtras) } -sealed class Projection { - data class OtherParameter(val name: String) : Projection() - object Star : Projection() - data class TypeConstructor(val dri: DRI, val projections: List) : Projection() - data class Nullable(val inner: Projection) : Projection() +sealed class Projection +sealed class Bound : Projection() +data class OtherParameter(val name: String) : Bound() +object Star : Projection() +data class TypeConstructor(val dri: DRI, val projections: List) : Bound() +data class Nullable(val inner: Bound) : Bound() +data class Variance(val kind: Kind, val inner: Bound): Projection() { + enum class Kind { In, Out } } enum class ExtraModifiers { diff --git a/core/src/main/kotlin/model/SignatureProvider.kt b/core/src/main/kotlin/model/SignatureProvider.kt new file mode 100644 index 00000000..2df0f4b6 --- /dev/null +++ b/core/src/main/kotlin/model/SignatureProvider.kt @@ -0,0 +1,7 @@ +package org.jetbrains.dokka.model + +import org.jetbrains.dokka.pages.ContentNode + +interface SignatureProvider { + fun signature(documentable: Documentable): List +} \ No newline at end of file -- cgit