Skip to content

Commit f171dd5

Browse files
committed
UPDATE_AA_VERSION: 2.1.20-dev-5634
1 parent 4aa67c3 commit f171dd5

File tree

3 files changed

+29
-7
lines changed

3 files changed

+29
-7
lines changed

Diff for: gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ junit5Version=5.8.2
1010
junitPlatformVersion=1.8.2
1111
googleTruthVersion=1.1
1212

13-
aaKotlinBaseVersion=2.1.20-dev-3305
13+
aaKotlinBaseVersion=2.1.20-dev-5634
1414
aaIntellijVersion=233.13135.128
1515
aaGuavaVersion=33.2.0-jre
1616
aaAsmVersion=9.0

Diff for: kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/KotlinSymbolProcessing.kt

+26-4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import org.jetbrains.kotlin.analysis.api.platform.modification.KotlinGlobalModif
6565
import org.jetbrains.kotlin.analysis.api.platform.modification.KotlinModificationTrackerFactory
6666
import org.jetbrains.kotlin.analysis.api.platform.packages.KotlinPackagePartProviderFactory
6767
import org.jetbrains.kotlin.analysis.api.platform.packages.KotlinPackageProviderFactory
68+
import org.jetbrains.kotlin.analysis.api.platform.permissions.KotlinAnalysisPermissionOptions
6869
import org.jetbrains.kotlin.analysis.api.platform.projectStructure.KotlinByModulesResolutionScopeProvider
6970
import org.jetbrains.kotlin.analysis.api.platform.projectStructure.KotlinResolutionScopeProvider
7071
import org.jetbrains.kotlin.analysis.api.projectStructure.KaModule
@@ -78,14 +79,14 @@ import org.jetbrains.kotlin.analysis.api.standalone.base.declarations.KotlinStan
7879
import org.jetbrains.kotlin.analysis.api.standalone.base.declarations.KotlinStandaloneDeclarationProviderMerger
7980
import org.jetbrains.kotlin.analysis.api.standalone.base.modification.KotlinStandaloneGlobalModificationService
8081
import org.jetbrains.kotlin.analysis.api.standalone.base.modification.KotlinStandaloneModificationTrackerFactory
82+
import org.jetbrains.kotlin.analysis.api.standalone.base.permissions.KotlinStandaloneAnalysisPermissionOptions
8183
import org.jetbrains.kotlin.analysis.api.standalone.base.projectStructure.FirStandaloneServiceRegistrar
8284
import org.jetbrains.kotlin.analysis.api.standalone.base.projectStructure.StandaloneProjectFactory
8385
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession
8486
import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLSealedInheritorsProvider
8587
import org.jetbrains.kotlin.analysis.project.structure.builder.KtModuleBuilder
8688
import org.jetbrains.kotlin.analysis.project.structure.builder.KtModuleProviderBuilder
8789
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSdkModule
88-
import org.jetbrains.kotlin.analysis.project.structure.impl.KaSourceModuleImpl
8990
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoots
9091
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreApplicationEnvironmentMode
9192
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment
@@ -136,6 +137,9 @@ class KotlinSymbolProcessing(
136137
// Let exceptions pop through to the caller. Don't catch and convert them to, e.g., INTERNAL_ERROR.
137138
}
138139

140+
private var applicationServiceRegistered = false
141+
private var applicationServiceRegisteredLock = object {}
142+
139143
init {
140144
// We depend on swing (indirectly through PSI or something), so we want to declare headless mode,
141145
// to avoid accidentally starting the UI thread. But, don't set it if it was set externally.
@@ -145,7 +149,7 @@ class KotlinSymbolProcessing(
145149
setupIdeaStandaloneExecution()
146150
}
147151

148-
@OptIn(KaExperimentalApi::class)
152+
@OptIn(KaExperimentalApi::class, KaImplementationDetail::class)
149153
private fun createAASession(
150154
compilerConfiguration: CompilerConfiguration,
151155
projectDisposable: Disposable,
@@ -238,6 +242,21 @@ class KotlinSymbolProcessing(
238242
StandaloneProjectFactory.createPackagePartsProvider(
239243
libraryRoots,
240244
)
245+
246+
synchronized(applicationServiceRegisteredLock) {
247+
if (!applicationServiceRegistered) {
248+
applicationServiceRegistered = true
249+
val application = kotlinCoreProjectEnvironment.environment.application
250+
application.registerService(
251+
org.jetbrains.kotlin.analysis.api.permissions.KaAnalysisPermissionRegistry::class.java,
252+
org.jetbrains.kotlin.analysis.api.impl.base.permissions.KaBaseAnalysisPermissionRegistry::class.java
253+
)
254+
application.registerService(
255+
KotlinAnalysisPermissionOptions::class.java,
256+
KotlinStandaloneAnalysisPermissionOptions::class.java
257+
)
258+
}
259+
}
241260
registerProjectServices(
242261
kotlinCoreProjectEnvironment,
243262
ktFiles,
@@ -331,6 +350,7 @@ class KotlinSymbolProcessing(
331350
}
332351
}
333352

353+
@OptIn(KaExperimentalApi::class)
334354
private fun prepareAllKSFiles(
335355
kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment,
336356
modules: List<KaModule>,
@@ -339,8 +359,8 @@ class KotlinSymbolProcessing(
339359
val project = kotlinCoreProjectEnvironment.project
340360
val ktFiles = mutableSetOf<KtFile>()
341361
val javaFiles = mutableSetOf<PsiJavaFile>()
342-
modules.filterIsInstance<KaSourceModuleImpl>().forEach {
343-
it.sourceRoots.forEach {
362+
modules.filterIsInstance<KaSourceModule>().forEach {
363+
it.psiRoots.forEach {
344364
when (it) {
345365
is KtFile -> ktFiles.add(it)
346366
is PsiJavaFile -> if (javaFileManager != null) javaFiles.add(it)
@@ -652,6 +672,8 @@ internal val DEAR_SHADOW_JAR_PLEASE_DO_NOT_REMOVE_THESE = listOf(
652672
org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionInvalidationService::class.java,
653673
org.jetbrains.kotlin.analysis.low.level.api.fir.stubBased.deserialization.LLStubBasedLibrarySymbolProviderFactory::class.java,
654674
org.jetbrains.kotlin.analysis.api.impl.base.permissions.KaBaseAnalysisPermissionChecker::class.java,
675+
org.jetbrains.kotlin.analysis.api.impl.base.permissions.KaBaseAnalysisPermissionRegistry::class.java,
676+
org.jetbrains.kotlin.analysis.api.permissions.KaAnalysisPermissionRegistry::class.java,
655677
org.jetbrains.kotlin.analysis.api.platform.KotlinProjectMessageBusProvider::class.java,
656678
org.jetbrains.kotlin.analysis.api.platform.permissions.KaAnalysisPermissionChecker::class.java,
657679
org.jetbrains.kotlin.analysis.api.platform.projectStructure.KotlinSimpleGlobalSearchScopeMerger::class.java,

Diff for: kotlin-analysis-api/testData/javaModifiers.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
// DependencyOuterJavaClass.staticPublicField: FINAL JAVA_STATIC PUBLIC : FINAL JAVA_STATIC PUBLIC
4242
// DependencyOuterJavaClass.staticPublicMethod: FINAL JAVA_STATIC PUBLIC : FINAL JAVA_STATIC PUBLIC
4343
// DependencyOuterJavaClass.synchronizedFun: OPEN : JAVA_SYNCHRONIZED
44-
// DependencyOuterJavaClass.transientField: OPEN : JAVA_TRANSIENT
45-
// DependencyOuterJavaClass.volatileField: OPEN : JAVA_VOLATILE
44+
// DependencyOuterJavaClass.transientField: FINAL : FINAL JAVA_TRANSIENT
45+
// DependencyOuterJavaClass.volatileField: FINAL : FINAL JAVA_VOLATILE
4646
// DependencyOuterJavaClass: OPEN PUBLIC : PUBLIC
4747
// DependencyOuterKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
4848
// DependencyOuterKotlinClass.Companion.<init>: FINAL PRIVATE : FINAL PRIVATE

0 commit comments

Comments
 (0)