aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt4
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt7
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt144
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt179
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt2
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/SuppressedDocumentableFilterTransformer.kt2
-rw-r--r--plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt6
-rw-r--r--plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt37
-rw-r--r--plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt6
-rw-r--r--plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/pages/JavadocPageNodes.kt6
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt6
11 files changed, 156 insertions, 243 deletions
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt b/plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt
index 1b65fc22..1fb7b960 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt
@@ -62,7 +62,7 @@ class ActualTypealiasAdder : DocumentableTransformer {
private fun <T> addActualTypeAlias(
elements: Iterable<T>,
typealiases: Map<DRI, DTypeAlias>
- ): List<T> where T : DClasslike, T : WithExtraProperties<T>, T : WithExpectActual =
+ ): List<T> where T : DClasslike, T : WithExtraProperties<T>, T : WithSources =
elements.map { element ->
if (element.expectPresentInSet != null) {
typealiases[element.dri]?.let { ta ->
@@ -81,4 +81,4 @@ class ActualTypealiasAdder : DocumentableTransformer {
element
}
}
-} \ No newline at end of file
+}
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
index 6e288c01..a7cd171e 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
@@ -79,10 +79,7 @@ internal class DefaultDocumentableMerger(val context: DokkaContext) : Documentab
private fun <T> mergeExpectActual(
elements: List<T>,
reducer: (T, T) -> T
- ): List<T> where T : Documentable, T : WithExpectActual {
-
- fun T.isExpectActual(): Boolean =
- this.safeAs<WithExtraProperties<T>>().let { it != null && it.extra[IsExpectActual] != null }
+ ): List<T> where T : Documentable, T : WithSources {
fun mergeClashingElements(elements: List<Pair<T, Set<DokkaConfiguration.DokkaSourceSet>>>): List<T> =
elements.groupBy { it.first.name }.values.flatMap { listOfDocumentableToSSIds ->
@@ -147,7 +144,7 @@ internal class DefaultDocumentableMerger(val context: DokkaContext) : Documentab
return elements.partition {
- it.isExpectActual()
+ (it as? WithIsExpectActual)?.isExpectActual ?: false
}.let { (expectActuals, notExpectActuals) ->
notExpectActuals.map { it to it.sourceSets }
.groupBy { it.first.dri }.values.flatMap(::mergeClashingElements) +
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt b/plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt
index 6a6231c5..aab7c6ba 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt
@@ -35,12 +35,8 @@ class DeprecatedDocumentableFilterTransformer(val context: DokkaContext) : PreMe
filterPackages(original.packages).let { (modified, packages) ->
if (!modified) original
else
- DModule(
- original.name,
- packages = packages,
- documentation = original.documentation,
- sourceSets = original.sourceSets,
- extra = original.extra
+ original.copy(
+ packages = packages
)
}
@@ -65,16 +61,10 @@ class DeprecatedDocumentableFilterTransformer(val context: DokkaContext) : PreMe
!modified -> pckg
else -> {
packagesListChanged = true
- DPackage(
- pckg.dri,
- functions,
- properties,
- classlikes,
- pckg.typealiases,
- pckg.documentation,
- pckg.expectPresentInSet,
- pckg.sourceSets,
- pckg.extra
+ pckg.copy(
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes
)
}
}
@@ -98,16 +88,10 @@ class DeprecatedDocumentableFilterTransformer(val context: DokkaContext) : PreMe
private fun filterEnumEntries(entries: List<DEnumEntry>) =
entries.filter { it.isAllowedInPackage() }.map { entry ->
- DEnumEntry(
- entry.dri,
- entry.name,
- entry.documentation,
- entry.expectPresentInSet,
- filterFunctions(entry.functions).second,
- filterProperties(entry.properties).second,
- filterClasslikes(entry.classlikes).second,
- entry.sourceSets,
- entry.extra
+ entry.copy(
+ functions = filterFunctions(entry.functions).second,
+ properties = filterProperties(entry.properties).second,
+ classlikes = filterClasslikes(entry.classlikes).second,
)
}
@@ -125,122 +109,70 @@ class DeprecatedDocumentableFilterTransformer(val context: DokkaContext) : PreMe
}
}.map { classlike ->
fun helper(): DClasslike = when (classlike) {
- is DClass -> DClass(
- classlike.dri,
- classlike.name,
- filterFunctions(classlike.constructors).let {
+ is DClass -> classlike.copy(
+ constructors = filterFunctions(classlike.constructors).let {
modified = modified || it.first; it.second
},
- filterFunctions(classlike.functions).let {
+ functions = filterFunctions(classlike.functions).let {
modified = modified || it.first; it.second
},
- filterProperties(classlike.properties).let {
+ properties = filterProperties(classlike.properties).let {
modified = modified || it.first; it.second
},
- filterClasslikes(classlike.classlikes).let {
+ classlikes = filterClasslikes(classlike.classlikes).let {
modified = modified || it.first; it.second
- },
- classlike.sources,
- classlike.visibility,
- classlike.companion,
- classlike.generics,
- classlike.supertypes,
- classlike.documentation,
- classlike.expectPresentInSet,
- classlike.modifier,
- classlike.sourceSets,
- classlike.extra
+ }
)
- is DAnnotation -> DAnnotation(
- classlike.name,
- classlike.dri,
- classlike.documentation,
- classlike.expectPresentInSet,
- classlike.sources,
- filterFunctions(classlike.functions).let {
+ is DAnnotation -> classlike.copy(
+ functions = filterFunctions(classlike.functions).let {
modified = modified || it.first; it.second
},
- filterProperties(classlike.properties).let {
+ properties = filterProperties(classlike.properties).let {
modified = modified || it.first; it.second
},
- filterClasslikes(classlike.classlikes).let {
+ classlikes = filterClasslikes(classlike.classlikes).let {
modified = modified || it.first; it.second
},
- classlike.visibility,
- classlike.companion,
- filterFunctions(classlike.constructors).let {
+ constructors = filterFunctions(classlike.constructors).let {
modified = modified || it.first; it.second
- },
- classlike.generics,
- classlike.sourceSets,
- classlike.extra
+ }
)
- is DEnum -> DEnum(
- classlike.dri,
- classlike.name,
- filterEnumEntries(classlike.entries),
- classlike.documentation,
- classlike.expectPresentInSet,
- classlike.sources,
- filterFunctions(classlike.functions).let {
+ is DEnum -> classlike.copy(
+ entries = filterEnumEntries(classlike.entries),
+ functions = filterFunctions(classlike.functions).let {
modified = modified || it.first; it.second
},
- filterProperties(classlike.properties).let {
+ properties = filterProperties(classlike.properties).let {
modified = modified || it.first; it.second
},
- filterClasslikes(classlike.classlikes).let {
+ classlikes = filterClasslikes(classlike.classlikes).let {
modified = modified || it.first; it.second
},
- classlike.visibility,
- classlike.companion,
- filterFunctions(classlike.constructors).let {
+ constructors = filterFunctions(classlike.constructors).let {
modified = modified || it.first; it.second
},
- classlike.supertypes,
- classlike.sourceSets,
- classlike.extra
)
- is DInterface -> DInterface(
- classlike.dri,
- classlike.name,
- classlike.documentation,
- classlike.expectPresentInSet,
- classlike.sources,
- filterFunctions(classlike.functions).let {
+ is DInterface -> classlike.copy(
+ functions = filterFunctions(classlike.functions).let {
modified = modified || it.first; it.second
},
- filterProperties(classlike.properties).let {
+ properties = filterProperties(classlike.properties).let {
modified = modified || it.first; it.second
},
- filterClasslikes(classlike.classlikes).let {
+ classlikes = filterClasslikes(classlike.classlikes).let {
modified = modified || it.first; it.second
- },
- classlike.visibility,
- classlike.companion,
- classlike.generics,
- classlike.supertypes,
- classlike.sourceSets,
- classlike.extra
+ }
)
- is DObject -> DObject(
- classlike.name,
- classlike.dri,
- classlike.documentation,
- classlike.expectPresentInSet,
- classlike.sources,
- filterFunctions(classlike.functions).let {
+ is DObject -> classlike.copy(
+ functions = filterFunctions(classlike.functions).let {
modified = modified || it.first; it.second
},
- filterProperties(classlike.properties).let {
+ properties = filterProperties(classlike.properties).let {
modified = modified || it.first; it.second
},
- filterClasslikes(classlike.classlikes).let {
+ classlikes = filterClasslikes(classlike.classlikes).let {
modified = modified || it.first; it.second
- },
- classlike.visibility,
- classlike.supertypes,
- classlike.sourceSets,
- classlike.extra
+ }
)
}
helper()
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt
index ff05beed..9b024a0b 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt
@@ -122,21 +122,13 @@ class DocumentableVisibilityFilterTransformer(val context: DokkaContext) : PreMe
) =
functions.transform(additionalCondition) { original, filteredPlatforms ->
with(original) {
- DFunction(
- dri,
- name,
- isConstructor,
- parameters,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- visibility.filtered(filteredPlatforms),
- type,
- generics.mapNotNull { it.filter(filteredPlatforms) },
- receiver,
- modifier,
- filteredPlatforms,
- extra
+ copy(
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ visibility = visibility.filtered(filteredPlatforms),
+ generics = generics.mapNotNull { it.filter(filteredPlatforms) },
+ sourceSets = filteredPlatforms,
)
}
}
@@ -151,21 +143,13 @@ class DocumentableVisibilityFilterTransformer(val context: DokkaContext) : PreMe
): Pair<Boolean, List<DProperty>> =
properties.transform(additionalCondition, ::hasVisibleAccessorsForPlatform) { original, filteredPlatforms ->
with(original) {
- DProperty(
- dri,
- name,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- visibility.filtered(filteredPlatforms),
- type,
- receiver,
- setter,
- getter,
- modifier,
- filteredPlatforms,
- generics.mapNotNull { it.filter(filteredPlatforms) },
- extra
+ copy(
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ visibility = visibility.filtered(filteredPlatforms),
+ sourceSets = filteredPlatforms,
+ generics = generics.mapNotNull { it.filter(filteredPlatforms) },
)
}
}
@@ -235,86 +219,69 @@ class DocumentableVisibilityFilterTransformer(val context: DokkaContext) : PreMe
classlikesListChanged = classlikesListChanged || modified
when {
!modified -> this
- this is DClass -> DClass(
- dri,
- name,
- constructors,
- functions,
- properties,
- classlikes,
- sources.filtered(filteredPlatforms),
- visibility.filtered(filteredPlatforms),
- companion,
- generics,
- supertypes.filtered(filteredPlatforms),
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- modifier,
- filteredPlatforms,
- extra
+ this is DClass -> copy(
+ constructors = constructors,
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes,
+ sources = sources.filtered(filteredPlatforms),
+ visibility = visibility.filtered(filteredPlatforms),
+ companion = companion,
+ generics = generics,
+ supertypes = supertypes.filtered(filteredPlatforms),
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sourceSets = filteredPlatforms
)
- this is DAnnotation -> DAnnotation(
- name,
- dri,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- functions,
- properties,
- classlikes,
- visibility.filtered(filteredPlatforms),
- companion,
- constructors,
- generics,
- filteredPlatforms,
- extra
+ this is DAnnotation -> copy(
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes,
+ visibility = visibility.filtered(filteredPlatforms),
+ companion = companion,
+ constructors = constructors,
+ generics = generics,
+ sourceSets = filteredPlatforms
)
- this is DEnum -> DEnum(
- dri,
- name,
- enumEntries,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- functions,
- properties,
- classlikes,
- visibility.filtered(filteredPlatforms),
- companion,
- constructors,
- supertypes.filtered(filteredPlatforms),
- filteredPlatforms,
- extra
+ this is DEnum -> copy(
+ entries = enumEntries,
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes,
+ visibility = visibility.filtered(filteredPlatforms),
+ companion = companion,
+ constructors = constructors,
+ supertypes = supertypes.filtered(filteredPlatforms),
+ sourceSets = filteredPlatforms
)
- this is DInterface -> DInterface(
- dri,
- name,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- functions,
- properties,
- classlikes,
- visibility.filtered(filteredPlatforms),
- companion,
- generics,
- supertypes.filtered(filteredPlatforms),
- filteredPlatforms,
- extra
+ this is DInterface -> copy(
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes,
+ visibility = visibility.filtered(filteredPlatforms),
+ companion = companion,
+ generics = generics,
+ supertypes = supertypes.filtered(filteredPlatforms),
+ sourceSets = filteredPlatforms
)
- this is DObject -> DObject(
- name,
- dri,
- documentation.filtered(filteredPlatforms),
- expectPresentInSet.filtered(filteredPlatforms),
- sources.filtered(filteredPlatforms),
- functions,
- properties,
- classlikes,
- visibility,
- supertypes.filtered(filteredPlatforms),
- filteredPlatforms,
- extra
+ this is DObject -> copy(
+ documentation = documentation.filtered(filteredPlatforms),
+ expectPresentInSet = expectPresentInSet.filtered(filteredPlatforms),
+ sources = sources.filtered(filteredPlatforms),
+ functions = functions,
+ properties = properties,
+ classlikes = classlikes,
+ supertypes = supertypes.filtered(filteredPlatforms),
+ sourceSets = filteredPlatforms
)
else -> null
}
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt b/plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt
index ddc0cd37..2608d9ba 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt
@@ -129,7 +129,7 @@ internal class ReportUndocumentedTransformer : DocumentableTransformer {
private fun callableMemberDescriptorOrNull(
documentable: Documentable, sourceSet: DokkaSourceSet
): CallableMemberDescriptor? {
- if (documentable is WithExpectActual) {
+ if (documentable is WithSources) {
return documentable.sources[sourceSet]
.safeAs<DescriptorDocumentableSource>()?.descriptor
.safeAs()
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/SuppressedDocumentableFilterTransformer.kt b/plugins/base/src/main/kotlin/transformers/documentables/SuppressedDocumentableFilterTransformer.kt
index 7febabbb..b066e69b 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/SuppressedDocumentableFilterTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/SuppressedDocumentableFilterTransformer.kt
@@ -42,7 +42,7 @@ class SuppressedDocumentableFilterTransformer(val context: DokkaContext) : PreMe
}
private fun isSuppressed(documentable: Documentable): Boolean {
- if (documentable !is WithExpectActual) return false
+ if (documentable !is WithSources) return false
val sourceFile = File(source(documentable).path).absoluteFile
return sourceSet(documentable).suppressedFiles.any { suppressedFile ->
sourceFile.startsWith(suppressedFile.absoluteFile)
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 8f6f09fb..76bf0067 100644
--- a/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt
+++ b/plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt
@@ -8,7 +8,7 @@ import org.jetbrains.dokka.model.DocumentableSource
import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
import org.jetbrains.dokka.analysis.DescriptorDocumentableSource
import org.jetbrains.dokka.analysis.PsiDocumentableSource
-import org.jetbrains.dokka.model.WithExpectActual
+import org.jetbrains.dokka.model.WithSources
import org.jetbrains.dokka.model.toDisplaySourceSets
import org.jetbrains.dokka.pages.*
import org.jetbrains.dokka.plugability.DokkaContext
@@ -23,7 +23,7 @@ class SourceLinksTransformer(val context: DokkaContext, val builder: PageContent
override fun invoke(input: RootPageNode) =
input.transformContentPagesTree { node ->
when (val documentable = node.documentable) {
- is WithExpectActual -> resolveSources(documentable)
+ is WithSources -> resolveSources(documentable)
.takeIf { it.isNotEmpty() }
?.let { node.addSourcesContent(it) }
?: node
@@ -34,7 +34,7 @@ class SourceLinksTransformer(val context: DokkaContext, val builder: PageContent
private fun getSourceLinks() = context.configuration.sourceSets
.flatMap { it.sourceLinks.map { sl -> SourceLink(sl, it) } }
- private fun resolveSources(documentable: WithExpectActual) = documentable.sources
+ private fun resolveSources(documentable: WithSources) = documentable.sources
.mapNotNull { entry ->
getSourceLinks().find { File(entry.value.path).startsWith(it.path) && it.sourceSetData == entry.key }?.let {
Pair(
diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
index 57d4f151..5e6f8f20 100644
--- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt
@@ -158,11 +158,12 @@ private class DokkaDescriptorVisitor(
generics = descriptor.declaredTypeParameters.map { it.toVariantTypeParameter() },
companion = descriptor.companion(driWithPlatform),
sourceSets = setOf(sourceSet),
- extra = PropertyContainer.withAll<DInterface>(
+ isExpectActual = (isExpect || isActual),
+ extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations(),
ImplementedInterfaces(info.allImplementedInterfaces.toSourceSetDependent())
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -186,11 +187,12 @@ private class DokkaDescriptorVisitor(
supertypes = info.supertypes.toSourceSetDependent(),
documentation = info.docs,
sourceSets = setOf(sourceSet),
- extra = PropertyContainer.withAll<DObject>(
+ isExpectActual = (isExpect || isActual),
+ extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations(),
ImplementedInterfaces(info.allImplementedInterfaces.toSourceSetDependent())
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -216,11 +218,12 @@ private class DokkaDescriptorVisitor(
documentation = info.docs,
companion = descriptor.companion(driWithPlatform),
sourceSets = setOf(sourceSet),
- extra = PropertyContainer.withAll<DEnum>(
+ isExpectActual = (isExpect || isActual),
+ extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations(),
ImplementedInterfaces(info.allImplementedInterfaces.toSourceSetDependent())
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -261,10 +264,11 @@ private class DokkaDescriptorVisitor(
properties = scope.properties(driWithPlatform),
expectPresentInSet = sourceSet.takeIf { isExpect },
sourceSets = setOf(sourceSet),
- extra = PropertyContainer.withAll<DAnnotation>(
+ isExpectActual = (isExpect || isActual),
+ extra = PropertyContainer.withAll(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
- ).let { if (isExpect || isActual) it + IsExpectActual else it },
+ ),
companion = descriptor.companionObjectDescriptor?.let { objectDescriptor(it, driWithPlatform) },
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
generics = descriptor.declaredTypeParameters.map { it.toVariantTypeParameter() },
@@ -303,11 +307,12 @@ private class DokkaDescriptorVisitor(
modifier = descriptor.modifier().toSourceSetDependent(),
companion = descriptor.companion(driWithPlatform),
sourceSets = setOf(sourceSet),
+ isExpectActual = (isExpect || isActual),
extra = PropertyContainer.withAll<DClass>(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations(),
ImplementedInterfaces(info.allImplementedInterfaces.toSourceSetDependent())
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -337,11 +342,12 @@ private class DokkaDescriptorVisitor(
expectPresentInSet = sourceSet.takeIf { isExpect },
sourceSets = setOf(sourceSet),
generics = descriptor.typeParameters.map { it.toVariantTypeParameter() },
+ isExpectActual = (isExpect || isActual),
extra = PropertyContainer.withAll(
(descriptor.additionalExtras() + descriptor.getAnnotationsWithBackingField()
.toAdditionalExtras()).toSet().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotationsWithBackingField().toSourceSetDependent().toAnnotations()
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -376,11 +382,12 @@ private class DokkaDescriptorVisitor(
modifier = descriptor.modifier().toSourceSetDependent(),
type = descriptor.returnType!!.toBound(),
sourceSets = setOf(sourceSet),
- extra = PropertyContainer.withAll<DFunction>(
+ isExpectActual = (isExpect || isActual),
+ extra = PropertyContainer.withAll(
InheritedFunction(inheritedFrom.toSourceSetDependent()),
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
@@ -421,6 +428,7 @@ private class DokkaDescriptorVisitor(
modifier = descriptor.modifier().toSourceSetDependent(),
generics = descriptor.typeParameters.map { it.toVariantTypeParameter() },
sourceSets = setOf(sourceSet),
+ isExpectActual = (isExpect || isActual),
extra = PropertyContainer.withAll<DFunction>(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
@@ -428,7 +436,7 @@ private class DokkaDescriptorVisitor(
if (descriptor.isPrimary) {
it + PrimaryConstructorExtra
} else it
- }.let { if (isExpect || isActual) it + IsExpectActual else it }
+ }
)
}
@@ -501,10 +509,11 @@ private class DokkaDescriptorVisitor(
},
sources = descriptor.createSources(),
sourceSets = setOf(sourceSet),
+ isExpectActual = (isExpect || isActual),
extra = PropertyContainer.withAll<DFunction>(
descriptor.additionalExtras().toSourceSetDependent().toAdditionalModifiers(),
descriptor.getAnnotations().toSourceSetDependent().toAnnotations()
- ).let { if (isExpect || isActual) it + IsExpectActual else it }
+ )
)
}
diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
index 30e46404..c413f5c8 100644
--- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
+++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt
@@ -204,6 +204,7 @@ class DefaultPsiToDocumentableTranslator(
constructors.map { parseFunction(it, true) },
mapTypeParameters(dri),
setOf(sourceSetData),
+ false,
PropertyContainer.withAll(
implementedInterfacesExtra,
annotations.toList().toListOfAnnotations().toSourceSetDependent()
@@ -241,6 +242,7 @@ class DefaultPsiToDocumentableTranslator(
constructors.map { parseFunction(it, true) },
ancestors,
setOf(sourceSetData),
+ false,
PropertyContainer.withAll(
implementedInterfacesExtra, annotations.toList().toListOfAnnotations().toSourceSetDependent()
.toAnnotations()
@@ -260,6 +262,7 @@ class DefaultPsiToDocumentableTranslator(
mapTypeParameters(dri),
ancestors,
setOf(sourceSetData),
+ false,
PropertyContainer.withAll(
implementedInterfacesExtra, annotations.toList().toListOfAnnotations().toSourceSetDependent()
.toAnnotations()
@@ -281,6 +284,7 @@ class DefaultPsiToDocumentableTranslator(
null,
modifiers,
setOf(sourceSetData),
+ false,
PropertyContainer.withAll(
implementedInterfacesExtra, annotations.toList().toListOfAnnotations().toSourceSetDependent()
.toAnnotations()
@@ -323,6 +327,7 @@ class DefaultPsiToDocumentableTranslator(
null,
psi.getModifier().toSourceSetDependent(),
setOf(sourceSetData),
+ false,
psi.additionalExtras().let {
PropertyContainer.withAll(
InheritedFunction(inheritedFrom.toSourceSetDependent()),
@@ -454,6 +459,7 @@ class DefaultPsiToDocumentableTranslator(
psi.getModifier().toSourceSetDependent(),
setOf(sourceSetData),
emptyList(),
+ false,
psi.additionalExtras().let {
PropertyContainer.withAll<DProperty>(
it.toSourceSetDependent().toAdditionalModifiers(),
diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/pages/JavadocPageNodes.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/pages/JavadocPageNodes.kt
index 2f26ea79..7433b46e 100644
--- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/pages/JavadocPageNodes.kt
+++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/pages/JavadocPageNodes.kt
@@ -473,7 +473,7 @@ class TreeViewPage(
listOf(psi to l) + l.flatMap { gatherPsiClasses(it) }
}
- val psiInheritanceTree = documentables.flatMap { (_, v) -> (v as? WithExpectActual)?.sources?.values.orEmpty() }
+ val psiInheritanceTree = documentables.flatMap { (_, v) -> (v as? WithSources)?.sources?.values.orEmpty() }
.filterIsInstance<PsiDocumentableSource>().mapNotNull { it.psi as? PsiClass }.flatMap(::gatherPsiClasses)
.flatMap { entry -> entry.second.map { it to entry.first } }
.let {
@@ -547,9 +547,9 @@ class TreeViewPage(
}
private fun Documentable?.descriptorForPlatform(platform: Platform = Platform.jvm) =
- (this as? WithExpectActual).descriptorForPlatform(platform)
+ (this as? WithSources).descriptorForPlatform(platform)
- private fun WithExpectActual?.descriptorForPlatform(platform: Platform = Platform.jvm) = this?.let {
+ private fun WithSources?.descriptorForPlatform(platform: Platform = Platform.jvm) = this?.let {
it.sources.entries.find { it.key.analysisPlatform == platform }?.value?.let { it as? DescriptorDocumentableSource }?.descriptor as? ClassDescriptor
}
diff --git a/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt b/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt
index 3fd9cf18..e0ac3c40 100644
--- a/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt
+++ b/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import java.lang.IllegalStateException
-private fun <T : WithExpectActual> List<T>.groupedByLocation() =
+private fun <T : WithSources> List<T>.groupedByLocation() =
map { it.sources to it }
.groupBy({ (location, _) ->
location.let {
@@ -25,7 +25,7 @@ private fun <T : WithExpectActual> List<T>.groupedByLocation() =
internal fun DPackage.asJava(): DPackage {
@Suppress("UNCHECKED_CAST")
- val syntheticClasses = ((properties + functions) as List<WithExpectActual>)
+ val syntheticClasses = ((properties + functions) as List<WithSources>)
.groupedByLocation()
.map { (syntheticClassName, nodes) ->
DClass(
@@ -50,6 +50,7 @@ internal fun DPackage.asJava(): DPackage {
documentation = emptyMap(),
modifier = sourceSets.map { it to JavaModifier.Final }.toMap(),
sourceSets = sourceSets,
+ isExpectActual = false,
extra = PropertyContainer.empty()
)
}
@@ -218,6 +219,7 @@ internal fun DObject.asJava(): DObject = copy(
receiver = null,
generics = emptyList(),
expectPresentInSet = expectPresentInSet,
+ isExpectActual = false,
extra = PropertyContainer.withAll(sourceSets.map {
mapOf(it to setOf(ExtraModifiers.JavaOnlyModifiers.Static)).toAdditionalModifiers()
})