From 54f4c7f682a28422a50e2b5f4e2cdb9010b6a7c5 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Wed, 22 Jan 2025 10:46:17 +0200 Subject: [PATCH] Update AA to 2.2.0-dev-326 --- .../dokka/analysis/java/JavaAnalysisPlugin.kt | 15 --------------- .../symbols/plugin/SymbolsAnalysisPlugin.kt | 17 ++++++++++++++--- .../DefaultSymbolToDocumentableTranslator.kt | 3 +-- gradle/libs.versions.toml | 2 +- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt b/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt index d4d3dc582a..8a322a7466 100644 --- a/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt +++ b/dokka-subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt @@ -71,21 +71,6 @@ public class JavaAnalysisPlugin : DokkaPlugin() { DocCommentFinder(logger, docCommentFactory) } - // TODO #3936(https://youtrack.jetbrains.com/issue/KT-71862) use an endpoint from AA - /** - * Disposes global resources which would persist after unloading Analysis API (Symbols analysis) and IJ platform classes. - * - * **Important:** Once this function has been called, Analysis API *and* IntelliJ platform classes should not be used anymore. The classes - * should either be unloaded or the whole program should be shut down. - * - * Note: Disposing of resources, including threads, allows unloading Dokka's class loader. - */ - @InternalDokkaApi - public fun disposeGlobalStandaloneApplicationServices() { - @Suppress("UnstableApiUsage") - com.intellij.util.concurrency.AppExecutorUtil.shutdownApplicationScheduledExecutorService() - } - internal val javaDocCommentCreator by extending { docCommentCreators providing { JavaDocCommentCreator() } } diff --git a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt index f12ff3f033..62024d731f 100644 --- a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt +++ b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt @@ -22,6 +22,7 @@ import org.jetbrains.dokka.analysis.kotlin.symbols.services.SymbolExternalDocume import org.jetbrains.dokka.analysis.kotlin.symbols.translators.DefaultSymbolToDocumentableTranslator import org.jetbrains.dokka.plugability.* import org.jetbrains.dokka.renderers.PostAction +import org.jetbrains.kotlin.analysis.api.KaExperimentalApi import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation @Suppress("unused") @@ -38,13 +39,23 @@ public class SymbolsAnalysisPlugin : DokkaPlugin() { } } + internal val disposeKotlinAnalysisPostAction by extending { CoreExtensions.postActions providing { context -> PostAction { querySingle { kotlinAnalysis }.close() - if (context.configuration.finalizeCoroutines) - // TODO #3936(https://youtrack.jetbrains.com/issue/KT-71862) use an endpoint from AA - javaAnalysisPlugin.disposeGlobalStandaloneApplicationServices() + if (context.configuration.finalizeCoroutines) { + /** + * Disposes global resources which would persist after unloading Analysis API (Symbols analysis) and IJ platform classes. + * + * **Important:** Once this function has been called, Analysis API *and* IntelliJ platform classes should not be used anymore. The classes + * should either be unloaded or the whole program should be shut down. + * + * Note: Disposing of resources, including threads, allows unloading Dokka's class loader. + */ + @OptIn(KaExperimentalApi::class) + org.jetbrains.kotlin.analysis.api.standalone.disposeGlobalStandaloneApplicationServices() + } } } } diff --git a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index cf53d3431e..a7cd242a77 100644 --- a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -909,8 +909,7 @@ internal class DokkaSymbolVisitor( ExtraModifiers.KotlinOnlyModifiers.Const.takeIf { (this as? KaKotlinPropertySymbol)?.isConst == true }, ExtraModifiers.KotlinOnlyModifiers.LateInit.takeIf { (this as? KaKotlinPropertySymbol)?.isLateInit == true }, //ExtraModifiers.JavaOnlyModifiers.Static.takeIf { isJvmStaticInObjectOrClassOrInterface() }, - // TODO https://youtrack.jetbrains.com/issue/KT-68236/Analysis-API-add-isExternal-property-for-KaPropertySymbol - ExtraModifiers.KotlinOnlyModifiers.External.takeIf { (psi as? KtProperty)?.hasModifier(KtTokens.EXTERNAL_KEYWORD) == true }, + ExtraModifiers.KotlinOnlyModifiers.External.takeIf { isExternal }, //ExtraModifiers.KotlinOnlyModifiers.Static.takeIf { isStatic }, ExtraModifiers.KotlinOnlyModifiers.Override.takeIf { origin != KaSymbolOrigin.SUBSTITUTION_OVERRIDE && origin != KaSymbolOrigin.INTERSECTION_OVERRIDE && isOverride diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e43721de71..49528f06f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ javaDiffUtils = "4.12" ## Analysis kotlin-compiler = "2.0.20" -kotlin-compiler-k2 = "2.1.20-dev-4370" +kotlin-compiler-k2 = "2.2.0-dev-326" # MUST match the version of the intellij platform used in the kotlin compiler, # otherwise this will lead to different versions of psi API and implementations