diff --git a/subprojects/analysis-kotlin-symbols/api/analysis-kotlin-symbols.api b/subprojects/analysis-kotlin-symbols/api/analysis-kotlin-symbols.api index 4dcffe9ee4..4bddfcf1df 100644 --- a/subprojects/analysis-kotlin-symbols/api/analysis-kotlin-symbols.api +++ b/subprojects/analysis-kotlin-symbols/api/analysis-kotlin-symbols.api @@ -1,31 +1,11 @@ -public abstract interface class org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext : java/io/Closeable { - public abstract fun getMainModule ()Lorg/jetbrains/kotlin/analysis/project/structure/KtSourceModule; - public abstract fun getProject ()Lcom/intellij/openapi/project/Project; -} - -public abstract class org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis : java/io/Closeable { - public fun ()V - public fun (Lorg/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis;)V - public synthetic fun (Lorg/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun get (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)Lorg/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext; -} - public final class org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin : org/jetbrains/dokka/plugability/DokkaPlugin { public fun ()V - public final fun getKotlinAnalysis ()Lorg/jetbrains/dokka/plugability/ExtensionPoint; - public final fun getSymbolToDocumentableTranslator ()Lorg/jetbrains/dokka/plugability/Extension; -} - -public final class org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinAnalysisSourceRootsExtractor : org/jetbrains/dokka/analysis/java/SourceRootsExtractor { - public fun ()V - public fun extract (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Ljava/util/List; } public class org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSampleProvider : org/jetbrains/dokka/analysis/kotlin/internal/SampleProvider { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public fun close ()V public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; - public final fun getKotlinAnalysis ()Lorg/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis; public fun getSample (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/lang/String;)Lorg/jetbrains/dokka/analysis/kotlin/internal/SampleProvider$SampleSnippet; protected fun processBody (Lcom/intellij/psi/PsiElement;)Ljava/lang/String; protected fun processImports (Lcom/intellij/psi/PsiElement;)Ljava/lang/String; @@ -37,14 +17,3 @@ public final class org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSa public final fun getContext ()Lorg/jetbrains/dokka/plugability/DokkaContext; } -public final class org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder : org/jetbrains/dokka/analysis/kotlin/internal/FullClassHierarchyBuilder { - public fun ()V - public fun build (Lorg/jetbrains/dokka/model/DModule;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -} - -public final class org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator : org/jetbrains/dokka/transformers/sources/AsyncSourceToDocumentableTranslator { - public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V - public fun invoke (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; - public fun invokeSuspending (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -} - diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KDocProvider.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KDocProvider.kt index e47473ec42..c1b8651a3e 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KDocProvider.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KDocProvider.kt @@ -42,7 +42,7 @@ internal fun KtAnalysisSession.getJavaDocDocumentationFrom( return null } -internal fun KtAnalysisSession.getKDocDocumentationFrom(symbol: KtSymbol, logger: DokkaLogger) = findKDoc(symbol)?.let { +internal fun KtAnalysisSession.getKDocDocumentationFrom(symbol: KtSymbol, logger: DokkaLogger) = findKDoc(symbol)?.let { kDocContent -> val ktElement = symbol.psi val kdocLocation = ktElement?.containingFile?.name?.let { @@ -51,7 +51,7 @@ internal fun KtAnalysisSession.getKDocDocumentationFrom(symbol: KtSymbol, logger is KtClassOrObjectSymbol -> symbol.classIdIfNonLocal?.toString() is KtNamedSymbol -> symbol.name.asString() else -> null - }?.replace('/', '.') + }?.replace('/', '.') // replace to be compatible with K1 if (name != null) "$it/$name" else it @@ -59,7 +59,7 @@ internal fun KtAnalysisSession.getKDocDocumentationFrom(symbol: KtSymbol, logger parseFromKDocTag( - kDocTag = it.contentTag, + kDocTag = kDocContent.contentTag, externalDri = { link -> resolveKDocLink(link).logIfNotResolved(link.getLinkText(), logger) }, kdocLocation = kdocLocation ) diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KdocMarkdownParser.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KdocMarkdownParser.kt index a32f71760e..ec23b0c8a4 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KdocMarkdownParser.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/kdoc/KdocMarkdownParser.kt @@ -29,69 +29,63 @@ internal fun parseFromKDocTag( val allTags = listOf(kDocTag) + if (kDocTag.canHaveParent() && parseWithChildren) getAllKDocTags(findParent(kDocTag)) else emptyList() DocumentationNode( - allTags.map { - val links = it.allChildren.filterIsInstance().associate { it.getLinkText() to externalDri(it) } + allTags.map { tag -> + val links = tag.allChildren.filterIsInstance().associate { it.getLinkText() to externalDri(it) } val externalDRIProvider = { linkText: String -> links[linkText] } - when (it.knownTag) { - null -> if (it.name == null) Description(parseStringToDocNode(it.getContent(), externalDRIProvider)) else CustomTagWrapper( - parseStringToDocNode(it.getContent(), externalDRIProvider), - it.name!! + when (tag.knownTag) { + null -> if (tag.name == null) Description(parseStringToDocNode(tag.getContent(), externalDRIProvider)) else CustomTagWrapper( + parseStringToDocNode(tag.getContent(), externalDRIProvider), + tag.name!! ) - KDocKnownTag.AUTHOR -> Author(parseStringToDocNode(it.getContent(), externalDRIProvider)) + KDocKnownTag.AUTHOR -> Author(parseStringToDocNode(tag.getContent(), externalDRIProvider)) KDocKnownTag.THROWS -> { - val dri = pointedLink(it) + val dri = pointedLink(tag) Throws( - parseStringToDocNode(it.getContent(), externalDRIProvider), - dri?.fqDeclarationName() ?: it.getSubjectName().orEmpty(), + parseStringToDocNode(tag.getContent(), externalDRIProvider), + dri?.fqDeclarationName() ?: tag.getSubjectName().orEmpty(), dri, ) } KDocKnownTag.EXCEPTION -> { - val dri = pointedLink(it) + val dri = pointedLink(tag) Throws( - parseStringToDocNode(it.getContent(), externalDRIProvider), - dri?.fqDeclarationName() ?: it.getSubjectName().orEmpty(), + parseStringToDocNode(tag.getContent(), externalDRIProvider), + dri?.fqDeclarationName() ?: tag.getSubjectName().orEmpty(), dri ) } KDocKnownTag.PARAM -> Param( - parseStringToDocNode(it.getContent(), externalDRIProvider), - it.getSubjectName().orEmpty() + parseStringToDocNode(tag.getContent(), externalDRIProvider), + tag.getSubjectName().orEmpty() ) - KDocKnownTag.RECEIVER -> Receiver(parseStringToDocNode(it.getContent(), externalDRIProvider)) - KDocKnownTag.RETURN -> Return(parseStringToDocNode(it.getContent(), externalDRIProvider)) + KDocKnownTag.RECEIVER -> Receiver(parseStringToDocNode(tag.getContent(), externalDRIProvider)) + KDocKnownTag.RETURN -> Return(parseStringToDocNode(tag.getContent(), externalDRIProvider)) KDocKnownTag.SEE -> { - val dri = pointedLink(it) + val dri = pointedLink(tag) See( - parseStringToDocNode(it.getContent(), externalDRIProvider), - dri?.fqDeclarationName() ?: it.getSubjectName().orEmpty(), + parseStringToDocNode(tag.getContent(), externalDRIProvider), + dri?.fqDeclarationName() ?: tag.getSubjectName().orEmpty(), dri, ) } - KDocKnownTag.SINCE -> Since(parseStringToDocNode(it.getContent(), externalDRIProvider)) - KDocKnownTag.CONSTRUCTOR -> Constructor(parseStringToDocNode(it.getContent(), externalDRIProvider)) + KDocKnownTag.SINCE -> Since(parseStringToDocNode(tag.getContent(), externalDRIProvider)) + KDocKnownTag.CONSTRUCTOR -> Constructor(parseStringToDocNode(tag.getContent(), externalDRIProvider)) KDocKnownTag.PROPERTY -> Property( - parseStringToDocNode(it.getContent(), externalDRIProvider), - it.getSubjectName().orEmpty() + parseStringToDocNode(tag.getContent(), externalDRIProvider), + tag.getSubjectName().orEmpty() ) KDocKnownTag.SAMPLE -> Sample( - parseStringToDocNode(it.getContent(), externalDRIProvider), - it.getSubjectName().orEmpty() + parseStringToDocNode(tag.getContent(), externalDRIProvider), + tag.getSubjectName().orEmpty() ) - KDocKnownTag.SUPPRESS -> Suppress(parseStringToDocNode(it.getContent(), externalDRIProvider)) + KDocKnownTag.SUPPRESS -> Suppress(parseStringToDocNode(tag.getContent(), externalDRIProvider)) } } ) } } -//Horrible hack but since link resolution is passed as a function i am not able to resolve them otherwise -@kotlin.Suppress("DeprecatedCallableAddReplaceWith") -@Deprecated("This function makes wrong assumptions and is missing a lot of corner cases related to generics, " + - "parameters and static members. This is not supposed to be public API and will not be supported in the future") -internal fun DRI.fqName(): String? = "$packageName.$classNames".takeIf { packageName != null && classNames != null } - private fun findParent(kDoc: PsiElement): PsiElement = if (kDoc.canHaveParent()) findParent(kDoc.parent) else kDoc diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt index b110577619..eb7c5d70c1 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt @@ -5,7 +5,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaSourceSetID -import org.jetbrains.dokka.InternalDokkaApi import org.jetbrains.dokka.model.SourceSetDependent import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.kotlin.analysis.api.standalone.StandaloneAnalysisAPISession @@ -89,8 +88,7 @@ internal fun createAnalysisContext( /** * First child delegation. It does not close [parent]. */ -@InternalDokkaApi -abstract class KotlinAnalysis( +internal abstract class KotlinAnalysis( private val parent: KotlinAnalysis? = null ) : Closeable { @@ -120,8 +118,7 @@ internal open class EnvironmentKotlinAnalysis( } } -@InternalDokkaApi -interface AnalysisContext: Closeable { +internal interface AnalysisContext: Closeable { val project: Project val mainModule: KtSourceModule } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt index 262e9f9e49..71fdfadb0c 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt @@ -23,9 +23,9 @@ import org.jetbrains.dokka.renderers.PostAction import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation @Suppress("unused") -class SymbolsAnalysisPlugin : DokkaPlugin() { +public class SymbolsAnalysisPlugin : DokkaPlugin() { - val kotlinAnalysis by extensionPoint() + internal val kotlinAnalysis by extensionPoint() internal val defaultKotlinAnalysis by extending { kotlinAnalysis providing { ctx -> @@ -40,7 +40,7 @@ class SymbolsAnalysisPlugin : DokkaPlugin() { CoreExtensions.postActions with PostAction { querySingle { kotlinAnalysis }.close() } } - val symbolToDocumentableTranslator by extending { + internal val symbolToDocumentableTranslator by extending { CoreExtensions.sourceToDocumentableTranslator providing ::DefaultSymbolToDocumentableTranslator } @@ -50,11 +50,10 @@ class SymbolsAnalysisPlugin : DokkaPlugin() { javaAnalysisPlugin.projectProvider providing { KotlinAnalysisProjectProvider() } } - /* - internal val sourceRootsExtractor by extending { - javaAnalysisPlugin.sourceRootsExtractor providing { KotlinAnalysisSourceRootsExtractor() } - } - */ + internal val sourceRootsExtractor by extending { + javaAnalysisPlugin.sourceRootsExtractor providing { KotlinAnalysisSourceRootsExtractor() } + } + internal val kotlinDocCommentCreator by extending { javaAnalysisPlugin.docCommentCreators providing { DescriptorKotlinDocCommentCreator() @@ -117,10 +116,6 @@ class SymbolsAnalysisPlugin : DokkaPlugin() { plugin().sampleProviderFactory providing ::KotlinSampleProviderFactory } - internal val sourceRootsExtractor by extending { - javaAnalysisPlugin.sourceRootsExtractor providing { KotlinAnalysisSourceRootsExtractor() } - } - @OptIn(DokkaPluginApiPreview::class) override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement = PluginApiPreviewAcknowledgement } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinAnalysisSourceRootsExtractor.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinAnalysisSourceRootsExtractor.kt index a568f754d9..43aceccd98 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinAnalysisSourceRootsExtractor.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinAnalysisSourceRootsExtractor.kt @@ -5,7 +5,7 @@ import org.jetbrains.dokka.analysis.java.SourceRootsExtractor import org.jetbrains.dokka.plugability.DokkaContext import java.io.File -class KotlinAnalysisSourceRootsExtractor : SourceRootsExtractor { +internal class KotlinAnalysisSourceRootsExtractor : SourceRootsExtractor { override fun extract(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext): List { return sourceSet.sourceRoots.filter { directory -> directory.isDirectory || directory.extension == "java" } } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSampleProvider.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSampleProvider.kt index 768530b4f5..dc61b35b5e 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSampleProvider.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/KotlinSampleProvider.kt @@ -29,7 +29,7 @@ class KotlinSampleProviderFactory(val context: DokkaContext): SampleProviderFact */ @InternalDokkaApi open class KotlinSampleProvider(val context: DokkaContext): SampleProvider { - val kotlinAnalysis = SamplesKotlinAnalysis( + private val kotlinAnalysis = SamplesKotlinAnalysis( sourceSets = context.configuration.sourceSets, context = context, projectKotlinAnalysis = context.plugin().querySingle { kotlinAnalysis } @@ -38,7 +38,7 @@ open class KotlinSampleProvider(val context: DokkaContext): SampleProvider { protected open fun processBody(psiElement: PsiElement): String { val text = processSampleBody(psiElement).trim { it == '\n' || it == '\r' }.trimEnd() val lines = text.split("\n") - val indent = lines.filter(String::isNotBlank).map { it.takeWhile(Char::isWhitespace).count() }.minOrNull() ?: 0 + val indent = lines.filter(String::isNotBlank).minOfOrNull { it.takeWhile(Char::isWhitespace).count() } ?: 0 return lines.joinToString("\n") { it.drop(indent) } } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt index fec41a5a4c..d4269b119a 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.psi.KtClassOrObject import java.util.concurrent.ConcurrentHashMap -class SymbolFullClassHierarchyBuilder : FullClassHierarchyBuilder { +internal class SymbolFullClassHierarchyBuilder : FullClassHierarchyBuilder { override suspend fun build(module: DModule): ClassHierarchy { val map = module.sourceSets.associateWith { ConcurrentHashMap>() } module.packages.forEach { visitDocumentable(it, map) } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt index 9e961ef8f5..02198518fb 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/AnnotationTranslator.kt @@ -101,8 +101,12 @@ internal class AnnotationTranslator { annotationValue.classId.createDRI() ) - is KtKClassAnnotationValue.KtLocalKClassAnnotationValue -> TODO() - is KtKClassAnnotationValue.KtErrorClassAnnotationValue -> TODO() + is KtKClassAnnotationValue.KtLocalKClassAnnotationValue -> throw IllegalStateException("Unexpected a local class in annotation") + is KtKClassAnnotationValue.KtErrorClassAnnotationValue -> ClassValue( + annotationValue.unresolvedQualifierName ?: "", + DRI(packageName = "", classNames = ERROR_CLASS_NAME) + ) + KtUnsupportedAnnotationValue -> TODO() } @@ -112,10 +116,6 @@ internal class AnnotationTranslator { return DRI( packageName = callableId.packageName.asString(), classNames = callableId.className?.asString() + "." + callableId.callableName.asString(), - /*callable = Callable( - callableId.callableName.asString(), - params = emptyList(), - )*/ ).withEnumEntryExtra() } diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index 5c77483197..0c79b8a0e6 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -44,7 +44,7 @@ import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier import java.nio.file.Paths -class DefaultSymbolToDocumentableTranslator(context: DokkaContext) : AsyncSourceToDocumentableTranslator { +internal class DefaultSymbolToDocumentableTranslator(context: DokkaContext) : AsyncSourceToDocumentableTranslator { private val kotlinAnalysis = context.plugin().querySingle { kotlinAnalysis } private val javadocParser = JavadocParser( docCommentParsers = context.plugin().query { docCommentParsers }, diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/utils/CollectionExtensions.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/utils/CollectionExtensions.kt deleted file mode 100644 index c2012fc689..0000000000 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/utils/CollectionExtensions.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.jetbrains.dokka.analysis.kotlin.symbols.utils - -// TODO [beresnev] remove this copy-paste and use the same method from stdlib instead after updating to 1.5 -internal inline fun Iterable.firstNotNullOfOrNull(transform: (T) -> R?): R? { - for (element in this) { - val result = transform(element) - if (result != null) { - return result - } - } - return null -}