diff options
author | Kamil Doległo <kamilok1965@interia.pl> | 2020-06-12 09:51:31 +0200 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-06-15 13:15:30 +0200 |
commit | 0ff8ebe97f540fff0d6fac962749f73b1db689ef (patch) | |
tree | 6f249cae6c17e6d6098b33ce6d177a230396f2ac | |
parent | f3baf10b4c882230d382bfcdd94163d070bd0e25 (diff) | |
download | dokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.tar.gz dokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.tar.bz2 dokka-0ff8ebe97f540fff0d6fac962749f73b1db689ef.zip |
Change sourceSet collection from List to Set
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)) }) } |