aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Doległo <kamilok1965@interia.pl>2020-06-12 09:51:31 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-06-15 13:15:30 +0200
commit0ff8ebe97f540fff0d6fac962749f73b1db689ef (patch)
tree6f249cae6c17e6d6098b33ce6d177a230396f2ac
parentf3baf10b4c882230d382bfcdd94163d070bd0e25 (diff)
downloaddokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.tar.gz
dokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.tar.bz2
dokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.zip
Change sourceSet collection from List to Set
-rw-r--r--core/src/main/kotlin/model/Documentable.kt28
-rw-r--r--core/src/main/kotlin/model/documentableUtils.kt8
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt2
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt8
-rw-r--r--plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt3
-rw-r--r--plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt34
-rw-r--r--plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt2
-rw-r--r--plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt22
-rw-r--r--runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/ConfigurationExtractor.kt21
-rw-r--r--runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt21
10 files changed, 75 insertions, 74 deletions
diff --git a/core/src/main/kotlin/model/Documentable.kt b/core/src/main/kotlin/model/Documentable.kt
index c4dabb3b..feab34c5 100644
--- a/core/src/main/kotlin/model/Documentable.kt
+++ b/core/src/main/kotlin/model/Documentable.kt
@@ -13,7 +13,7 @@ abstract class Documentable {
abstract val dri: DRI
abstract val children: List<Documentable>
abstract val documentation: SourceSetDependent<DocumentationNode>
- abstract val sourceSets: List<SourceSetData>
+ abstract val sourceSets: Set<SourceSetData>
abstract val expectPresentInSet: SourceSetData?
override fun toString(): String =
@@ -91,7 +91,7 @@ data class DModule(
val packages: List<DPackage>,
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData? = null,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DModule> = PropertyContainer.empty()
) : Documentable(), WithExtraProperties<DModule> {
override val dri: DRI = DRI.topLevel
@@ -109,7 +109,7 @@ data class DPackage(
val typealiases: List<DTypeAlias>,
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData? = null,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DPackage> = PropertyContainer.empty()
) : Documentable(), WithScope, WithExtraProperties<DPackage> {
override val name = dri.packageName.orEmpty()
@@ -134,7 +134,7 @@ data class DClass(
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData?,
override val modifier: SourceSetDependent<Modifier>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DClass> = PropertyContainer.empty()
) : DClasslike(), WithAbstraction, WithCompanion, WithConstructors, WithGenerics, WithSupertypes,
WithExtraProperties<DClass> {
@@ -159,7 +159,7 @@ data class DEnum(
override val companion: DObject?,
override val constructors: List<DFunction>,
override val supertypes: SourceSetDependent<List<DRI>>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DEnum> = PropertyContainer.empty()
) : DClasslike(), WithCompanion, WithConstructors, WithSupertypes, WithExtraProperties<DEnum> {
override val children: List<Documentable>
@@ -176,7 +176,7 @@ data class DEnumEntry(
override val functions: List<DFunction>,
override val properties: List<DProperty>,
override val classlikes: List<DClasslike>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DEnumEntry> = PropertyContainer.empty()
) : Documentable(), WithScope, WithExtraProperties<DEnumEntry> {
override val children: List<Documentable>
@@ -198,7 +198,7 @@ data class DFunction(
override val generics: List<DTypeParameter>,
override val receiver: DParameter?,
override val modifier: SourceSetDependent<Modifier>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DFunction> = PropertyContainer.empty()
) : Documentable(), Callable, WithGenerics, WithExtraProperties<DFunction> {
override val children: List<Documentable>
@@ -220,7 +220,7 @@ data class DInterface(
override val companion: DObject?,
override val generics: List<DTypeParameter>,
override val supertypes: SourceSetDependent<List<DRI>>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DInterface> = PropertyContainer.empty()
) : DClasslike(), WithCompanion, WithGenerics, WithSupertypes, WithExtraProperties<DInterface> {
override val children: List<Documentable>
@@ -240,7 +240,7 @@ data class DObject(
override val classlikes: List<DClasslike>,
override val visibility: SourceSetDependent<Visibility>,
override val supertypes: SourceSetDependent<List<DRI>>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DObject> = PropertyContainer.empty()
) : DClasslike(), WithSupertypes, WithExtraProperties<DObject> {
override val children: List<Documentable>
@@ -262,7 +262,7 @@ data class DAnnotation(
override val companion: DObject?,
override val constructors: List<DFunction>,
override val generics: List<DTypeParameter>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DAnnotation> = PropertyContainer.empty()
) : DClasslike(), WithCompanion, WithConstructors, WithExtraProperties<DAnnotation>, WithGenerics {
override val children: List<Documentable>
@@ -283,7 +283,7 @@ data class DProperty(
val setter: DFunction?,
val getter: DFunction?,
override val modifier: SourceSetDependent<Modifier>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val generics: List<DTypeParameter>,
override val extra: PropertyContainer<DProperty> = PropertyContainer.empty()
) : Documentable(), Callable, WithExtraProperties<DProperty>, WithGenerics {
@@ -300,7 +300,7 @@ data class DParameter(
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData?,
val type: Bound,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DParameter> = PropertyContainer.empty()
) : Documentable(), WithExtraProperties<DParameter> {
override val children: List<Nothing>
@@ -315,7 +315,7 @@ data class DTypeParameter(
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData?,
val bounds: List<Bound>,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty()
) : Documentable(), WithExtraProperties<DTypeParameter> {
override val children: List<Nothing>
@@ -332,7 +332,7 @@ data class DTypeAlias(
override val visibility: SourceSetDependent<Visibility>,
override val documentation: SourceSetDependent<DocumentationNode>,
override val expectPresentInSet: SourceSetData?,
- override val sourceSets: List<SourceSetData>,
+ override val sourceSets: Set<SourceSetData>,
override val extra: PropertyContainer<DTypeAlias> = PropertyContainer.empty()
) : Documentable(), WithType, WithVisibility, WithExtraProperties<DTypeAlias> {
override val children: List<Nothing>
diff --git a/core/src/main/kotlin/model/documentableUtils.kt b/core/src/main/kotlin/model/documentableUtils.kt
index b09260ee..2d4ade15 100644
--- a/core/src/main/kotlin/model/documentableUtils.kt
+++ b/core/src/main/kotlin/model/documentableUtils.kt
@@ -1,12 +1,12 @@
package org.jetbrains.dokka.model
-fun <T> SourceSetDependent<T>.filtered(platformDataList: List<SourceSetData>) = filter { it.key in platformDataList }
-fun SourceSetData?.filtered(platformDataList: List<SourceSetData>) = takeIf { this in platformDataList }
+fun <T> SourceSetDependent<T>.filtered(platformDataList: Set<SourceSetData>) = filter { it.key in platformDataList }
+fun SourceSetData?.filtered(platformDataList: Set<SourceSetData>) = takeIf { this in platformDataList }
-fun DTypeParameter.filter(filteredData: List<SourceSetData>) =
+fun DTypeParameter.filter(filteredData: Set<SourceSetData>) =
if (filteredData.containsAll(sourceSets)) this
else {
- val intersection = filteredData.intersect(sourceSets).toList()
+ val intersection = filteredData.intersect(sourceSets)
if (intersection.isEmpty()) null
else DTypeParameter(
dri,
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
index 1b8fa299..c8e4f565 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
@@ -25,7 +25,7 @@ internal object DefaultDocumentableMerger : DocumentableMerger {
),
documentation = list.map { it.documentation }.flatMap { it.entries }.associate { (k,v) -> k to v },
expectPresentInSet = list.firstNotNullResult { it.expectPresentInSet },
- sourceSets = list.flatMap { it.sourceSets }
+ sourceSets = list.flatMap { it.sourceSets }.toSet()
).mergeExtras(left, right)
}
}
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt
index d15ec791..d3fc65fb 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt
@@ -91,12 +91,12 @@ internal class DocumentableVisibilityFilter(val context: DokkaContext) : PreMerg
visibilityForPlatform(d)?.isAllowedInPackage(dri.packageName) == true &&
additionalCondition(this, d) ||
alternativeCondition(this, d)
- }
+ }.toSet()
private fun <T> List<T>.transform(
additionalCondition: (T, SourceSetData) -> Boolean = ::alwaysTrue,
alternativeCondition: (T, SourceSetData) -> Boolean = ::alwaysFalse,
- recreate: (T, List<SourceSetData>) -> T
+ recreate: (T, Set<SourceSetData>) -> T
): Pair<Boolean, List<T>> where T : Documentable, T : WithVisibility {
var changed = false
val values = mapNotNull { t ->
@@ -170,11 +170,11 @@ internal class DocumentableVisibilityFilter(val context: DokkaContext) : PreMerg
}
}
- private fun filterEnumEntries(entries: List<DEnumEntry>, filteredPlatforms: List<SourceSetData>) =
+ private fun filterEnumEntries(entries: List<DEnumEntry>, filteredPlatforms: Set<SourceSetData>) =
entries.mapNotNull { entry ->
if (filteredPlatforms.containsAll(entry.sourceSets)) entry
else {
- val intersection = filteredPlatforms.intersect(entry.sourceSets).toList()
+ val intersection = filteredPlatforms.intersect(entry.sourceSets)
if (intersection.isEmpty()) null
else DEnumEntry(
entry.dri,
diff --git a/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt b/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt
index e324c5bb..d987a5d5 100644
--- a/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt
@@ -9,15 +9,12 @@ import org.jetbrains.dokka.model.SourceSetData
import org.jetbrains.dokka.model.DocumentableSource
import org.jetbrains.dokka.model.PsiDocumentableSource
import org.jetbrains.dokka.model.WithExpectActual
-import org.jetbrains.dokka.model.properties.PropertyContainer
-import org.jetbrains.dokka.model.sourceSet
import org.jetbrains.dokka.pages.*
import org.jetbrains.dokka.plugability.DokkaContext
import org.jetbrains.dokka.transformers.pages.PageTransformer
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithSource
import org.jetbrains.kotlin.resolve.source.getPsi
import org.jetbrains.kotlin.utils.addToStdlib.cast
-import org.jetbrains.kotlin.utils.addToStdlib.safeAs
class SourceLinksTransformer(val context: DokkaContext, val builder: PageContentBuilder) : PageTransformer {
diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
index 33cad4f5..90e37308 100644
--- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
@@ -67,7 +67,7 @@ object DefaultDescriptorToDocumentableTranslator : SourceToDocumentableTranslato
DRIWithPlatformInfo(DRI.topLevel, emptyMap())
)
}
- }.let { DModule(sourceSet.moduleName, it, emptyMap(), null, listOf(sourceSet)) }
+ }.let { DModule(sourceSet.moduleName, it, emptyMap(), null, setOf(sourceSet)) }
}
}
@@ -112,7 +112,7 @@ private class DokkaDescriptorVisitor(
classlikes = scope.classlikes(driWithPlatform, true),
typealiases = scope.typealiases(driWithPlatform, true),
documentation = descriptor.resolveDescriptorData(),
- sourceSets = listOf(sourceSet)
+ sourceSets = setOf(sourceSet)
)
}
@@ -145,7 +145,7 @@ private class DokkaDescriptorVisitor(
documentation = info.docs,
generics = descriptor.declaredTypeParameters.map { it.toTypeParameter() },
companion = descriptor.companion(driWithPlatform),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -171,7 +171,7 @@ private class DokkaDescriptorVisitor(
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
supertypes = info.supertypes.toSourceSetDependent(),
documentation = info.docs,
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -199,7 +199,7 @@ private class DokkaDescriptorVisitor(
supertypes = info.supertypes.toSourceSetDependent(),
documentation = info.docs,
companion = descriptor.companion(driWithPlatform),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -219,7 +219,7 @@ private class DokkaDescriptorVisitor(
classlikes = scope.classlikes(driWithPlatform),
functions = scope.functions(driWithPlatform),
properties = scope.properties(driWithPlatform),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
expectPresentInSet = sourceSet.takeIf { isExpect },
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
@@ -241,7 +241,7 @@ private class DokkaDescriptorVisitor(
functions = scope.functions(driWithPlatform),
properties = scope.properties(driWithPlatform),
expectPresentInSet = null,
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -282,7 +282,7 @@ private class DokkaDescriptorVisitor(
documentation = info.docs,
modifier = descriptor.modifier().toSourceSetDependent(),
companion = descriptor.companion(driWithPlatform),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -313,7 +313,7 @@ private class DokkaDescriptorVisitor(
modifier = descriptor.modifier().toSourceSetDependent(),
type = descriptor.returnType!!.toBound(),
expectPresentInSet = sourceSet.takeIf { isExpect },
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
generics = descriptor.typeParameters.map { it.toTypeParameter() },
extra = PropertyContainer.withAll(
(descriptor.additionalExtras() + descriptor.getAnnotationsWithBackingField()
@@ -351,7 +351,7 @@ private class DokkaDescriptorVisitor(
documentation = descriptor.resolveDescriptorData(),
modifier = descriptor.modifier().toSourceSetDependent(),
type = descriptor.returnType!!.toBound(),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
InheritedFunction(isInherited),
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
@@ -394,7 +394,7 @@ private class DokkaDescriptorVisitor(
type = descriptor.returnType.toBound(),
modifier = descriptor.modifier().toSourceSetDependent(),
generics = descriptor.typeParameters.map { it.toTypeParameter() },
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll<DFunction>(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -415,7 +415,7 @@ private class DokkaDescriptorVisitor(
type = descriptor.type.toBound(),
expectPresentInSet = null,
documentation = descriptor.resolveDescriptorData(),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(descriptor.getAnnotations().toSourceSetDependent().toAnnotations())
)
@@ -435,7 +435,7 @@ private class DokkaDescriptorVisitor(
type = this.type.toBound(),
expectPresentInSet = sourceSet.takeIf { isExpect },
documentation = descriptor.resolveDescriptorData(),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
getAnnotationsWithBackingField().toSourceSetDependent().toAnnotations()
@@ -473,7 +473,7 @@ private class DokkaDescriptorVisitor(
)
},
sources = descriptor.createSources(),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -491,7 +491,7 @@ private class DokkaDescriptorVisitor(
underlyingType = underlyingType.toBound().toSourceSetDependent(),
visibility = visibility.toDokkaVisibility().toSourceSetDependent(),
documentation = resolveDescriptorData(),
- sourceSets = listOf(sourceSet)
+ sourceSets = setOf(sourceSet)
)
}
@@ -502,7 +502,7 @@ private class DokkaDescriptorVisitor(
type = descriptor.type.toBound(),
expectPresentInSet = null,
documentation = descriptor.resolveDescriptorData(),
- sourceSets = listOf(sourceSet),
+ sourceSets = setOf(sourceSet),
extra = PropertyContainer.withAll(listOfNotNull(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations(),
@@ -564,7 +564,7 @@ private class DokkaDescriptorVisitor(
resolveDescriptorData(),
null,
upperBounds.map { it.toBound() },
- listOf(sourceSet),
+ setOf(sourceSet),
extra = PropertyContainer.withAll(additionalExtras().toSourceSetDependent().toAdditionalModifiers())
)
diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt
index bdc6d680..6d50f19a 100644
--- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt
+++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt
@@ -106,7 +106,7 @@ open class DefaultPageCreator(
protected open fun contentForScope(
s: WithScope,
dri: DRI,
- sourceSets: List<SourceSetData>
+ sourceSets: Set<SourceSetData>
) = contentBuilder.contentFor(s as Documentable) {
divergentBlock("Types", s.classlikes, ContentKind.Classlikes, extra = mainExtra + SimpleAttr.header("Types"))
divergentBlock("Functions", s.functions, ContentKind.Functions, extra = mainExtra + SimpleAttr.header( "Functions"))
diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
index d68f0e01..a5fa4189 100644
--- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
@@ -74,12 +74,12 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
emptyList(),
emptyMap(),
null,
- listOf(sourceSetData)
+ setOf(sourceSetData)
)
},
emptyMap(),
null,
- listOf(sourceSetData)
+ setOf(sourceSetData)
)
}
@@ -166,7 +166,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
null,
constructors.map { parseFunction(it, true) },
mapTypeParameters(dri),
- listOf(sourceSetData),
+ setOf(sourceSetData),
PropertyContainer.empty<DAnnotation>() + annotations.toList().getAnnotations()
.toSourceSetDependent().toAnnotations()
)
@@ -182,7 +182,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
emptyList(),
emptyList(),
emptyList(),
- listOf(sourceSetData),
+ setOf(sourceSetData),
PropertyContainer.empty<DEnumEntry>() + entry.annotations.toList().getAnnotations()
.toSourceSetDependent().toAnnotations()
)
@@ -197,7 +197,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
null,
constructors.map { parseFunction(it, true) },
ancestors,
- listOf(sourceSetData),
+ setOf(sourceSetData),
PropertyContainer.empty<DEnum>() + annotations.toList().getAnnotations().toSourceSetDependent()
.toAnnotations()
)
@@ -214,7 +214,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
null,
mapTypeParameters(dri),
ancestors,
- listOf(sourceSetData),
+ setOf(sourceSetData),
PropertyContainer.empty<DInterface>() + annotations.toList().getAnnotations().toSourceSetDependent()
.toAnnotations()
)
@@ -233,7 +233,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
documentation,
null,
modifiers,
- listOf(sourceSetData),
+ setOf(sourceSetData),
PropertyContainer.empty<DClass>() + annotations.toList().getAnnotations().toSourceSetDependent()
.toAnnotations()
)
@@ -257,7 +257,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
javadocParser.parseDocumentation(psiParameter).toSourceSetDependent(),
null,
getBound(psiParameter.type),
- listOf(sourceSetData)
+ setOf(sourceSetData)
)
},
javadocParser.parseDocumentation(psi).toSourceSetDependent(),
@@ -268,7 +268,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
psi.mapTypeParameters(dri),
null,
psi.getModifier().toSourceSetDependent(),
- listOf(sourceSetData),
+ setOf(sourceSetData),
psi.additionalExtras().let {
PropertyContainer.withAll(
InheritedFunction(isInherited),
@@ -350,7 +350,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
javadocParser.parseDocumentation(type).toSourceSetDependent(),
null,
mapBounds(type.bounds),
- listOf(sourceSetData)
+ setOf(sourceSetData)
)
}
}
@@ -393,7 +393,7 @@ object DefaultPsiToDocumentableTranslator : SourceToDocumentableTranslator {
accessors.firstOrNull { it.hasParameters() }?.let { parseFunction(it) },
accessors.firstOrNull { it.returnType == psi.type }?.let { parseFunction(it) },
psi.getModifier().toSourceSetDependent(),
- listOf(sourceSetData),
+ setOf(sourceSetData),
emptyList(),
psi.additionalExtras().let {
PropertyContainer.withAll<DProperty>(
diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/ConfigurationExtractor.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/ConfigurationExtractor.kt
index 44a0635f..3bd0b6ab 100644
--- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/ConfigurationExtractor.kt
+++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/ConfigurationExtractor.kt
@@ -24,15 +24,20 @@ class ConfigurationExtractor(private val project: Project) {
val projectExtension = project.extensions.getByType(KotlinProjectExtension::class.java)
val sourceSet = projectExtension.sourceSets.findByName(sourceSetName)
?: run { project.logger.error("No source set with name '$sourceSetName' found"); return null }
- val compilation = when (projectExtension) {
- is KotlinMultiplatformExtension -> {
- val targets = projectExtension.targets.flatMap { it.compilations }
- targets.find { it.name == sourceSetName } ?: targets.find { it.kotlinSourceSets.contains(sourceSet) }
- }
- is KotlinSingleTargetExtension -> projectExtension.target.compilations.find {
- it.kotlinSourceSets.contains(sourceSet)
+ val compilation = try {
+ when (projectExtension) {
+ is KotlinMultiplatformExtension -> {
+ val targets = projectExtension.targets.flatMap { it.compilations }
+ targets.find { it.name == sourceSetName }
+ ?: targets.find { it.kotlinSourceSets.contains(sourceSet) }
+ }
+ is KotlinSingleTargetExtension -> projectExtension.target.compilations.find {
+ it.kotlinSourceSets.contains(sourceSet)
+ }
+ else -> null
}
- else -> null
+ } catch (e: NoClassDefFoundError) { // Old Kotlin plugin versions
+ null
}
val sourceRoots = sourceSet.sourceFiles
diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt
index 5a420d4d..82cba6c1 100644
--- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt
+++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt
@@ -73,11 +73,10 @@ open class DokkaTask : DefaultTask(), Configurable {
internal set(value) = DslObject(this).extensions.add(SOURCE_SETS_EXTENSION_NAME, value)
private val kotlinTasks: List<Task> by lazy {
- extractKotlinCompileTasks({
- dokkaSourceSets.map {
+ extractKotlinCompileTasks(
+ dokkaSourceSets.mapNotNull {
it.collectKotlinTasks?.invoke()
- }
- }.takeIf { it().isNotEmpty() } ?: { defaultKotlinTasks() }
+ }.takeIf { it.isNotEmpty() }?.flatten() ?: defaultKotlinTasks()
)
}
@@ -100,8 +99,8 @@ open class DokkaTask : DefaultTask(), Configurable {
}
}
- protected fun extractKotlinCompileTasks(collectTasks: () -> List<Any?>?): List<Task> {
- val inputList = (collectTasks.invoke() ?: emptyList()).filterNotNull()
+ protected fun extractKotlinCompileTasks(collectTasks: List<Any?>?): List<Task> {
+ val inputList = (collectTasks ?: emptyList()).filterNotNull()
val (paths, other) = inputList.partition { it is String }
val tasksByPath = paths.map {
@@ -145,6 +144,7 @@ open class DokkaTask : DefaultTask(), Configurable {
outputDiagnosticInfo = true
val kotlinColorsEnabledBefore = System.getProperty(COLORS_ENABLED_PROPERTY) ?: "false"
System.setProperty(COLORS_ENABLED_PROPERTY, "false")
+ configuration.passesConfigurations.flatMap { it.sourceRoots }.also(::println)
try {
loadCore()
@@ -211,7 +211,7 @@ open class DokkaTask : DefaultTask(), Configurable {
val userConfig = config
.apply {
collectKotlinTasks?.let {
- configExtractor.extractFromKotlinTasks(extractKotlinCompileTasks(it))
+ configExtractor.extractFromKotlinTasks(extractKotlinCompileTasks(it()))
.fold(this) { config, platformData ->
mergeUserConfigurationAndPlatformData(config, platformData)
}
@@ -286,7 +286,7 @@ open class DokkaTask : DefaultTask(), Configurable {
if (config.sourceSetID.isBlank()) {
config.sourceSetID = config.name.takeIf(String::isNotBlank) ?: config.analysisPlatform.key
}
- config.displayName = config.sourceSetID.substringBeforeLast("Main")
+ config.displayName = config.moduleName + config.sourceSetID.substringBeforeLast("Main")
config.classpath =
(config.classpath as List<Any>).map { it.toString() }.distinct() // Workaround for Groovy's GStringImpl
config.sourceRoots = config.sourceRoots.distinct().toMutableList()
@@ -321,9 +321,8 @@ open class DokkaTask : DefaultTask(), Configurable {
// Needed for Gradle incremental build
@InputFiles
- fun getInputFiles(): FileCollection {
- val config = passConfigurations
- return project.files(config.flatMap { it.sourceRoots }.map { project.fileTree(File(it.path)) }) +
+ fun getInputFiles(): FileCollection = passConfigurations.let { config ->
+ project.files(config.flatMap { it.sourceRoots }.map { project.fileTree(File(it.path)) }) +
project.files(config.flatMap { it.includes }) +
project.files(config.flatMap { it.samples }.map { project.fileTree(File(it)) })
}