From 347eedb0a0f19eaa3c5f341b5b837aa39c26a293 Mon Sep 17 00:00:00 2001 From: Evgenii Mazhukin Date: Tue, 27 Feb 2024 07:42:15 +0000 Subject: [PATCH] [JPS][IC] Fix the use of Jps-dependency-graph API for lookups All dependencies should be registered before the Backend::associate(). ^KT-65429 Merge-request: KT-MR-14616 Merged-by: Evgenii Mazhukin --- .../jps/targets/KotlinJvmModuleBuildTarget.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt index 8bf7398c605..147e018e237 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinJvmModuleBuildTarget.kt @@ -13,7 +13,6 @@ import org.jetbrains.jps.builders.java.JavaBuilderUtil import org.jetbrains.jps.builders.java.dependencyView.Callbacks import org.jetbrains.jps.builders.java.dependencyView.Callbacks.Backend import org.jetbrains.jps.builders.storage.BuildDataPaths -import org.jetbrains.jps.dependency.java.LookupNameUsage import org.jetbrains.jps.incremental.* import org.jetbrains.jps.model.java.JpsJavaExtensionService import org.jetbrains.jps.model.module.JpsSdkDependency @@ -24,7 +23,6 @@ import org.jetbrains.kotlin.build.JvmBuildMetaInfo import org.jetbrains.kotlin.build.JvmSourceRoot import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity -import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.compilerRunner.JpsCompilerEnvironment import org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner import org.jetbrains.kotlin.config.IncrementalCompilation @@ -394,6 +392,13 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB return previousMappings.getClassSources(name).toSet() } + if (KotlinBuilder.useDependencyGraph) { + LookupUsageRegistrar().processLookupTracker( + environment.services[LookupTracker::class.java], + callback, + environment.messageCollector + ) + } for ((target, outputs) in outputItems) { for (output in outputs) { if (output !is GeneratedJvmClass) continue @@ -416,13 +421,7 @@ class KotlinJvmModuleBuildTarget(kotlinContext: KotlinCompileContext, jpsModuleB ) } } - if (KotlinBuilder.useDependencyGraph) { - LookupUsageRegistrar().processLookupTracker( - environment.services[LookupTracker::class.java], - callback, - environment.messageCollector - ) - } + // important: in jps-dependency-graph you can't register additional dependencies after [callback.associate]. val allCompiled = dirtyFilesHolder.allDirtyFiles JavaBuilderUtil.registerFilesToCompile(localContext, allCompiled)