From 11e23ecc70627f2ccdd39f0efa43c4de0c9aee4f Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 29 Oct 2018 14:09:08 +0900 Subject: [PATCH] Kapt: Fix 'apt+compile' mode, clear package caches directly --- .../kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 7 +++---- .../jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java | 4 ++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 26ac641283b..aeabc058d29 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -59,11 +59,13 @@ import org.jetbrains.kotlin.modules.TargetId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade import org.jetbrains.kotlin.script.tryConstructClassFromStringArgs import org.jetbrains.kotlin.utils.newLinkedHashMapWithExpectedSize import java.io.File import java.lang.reflect.InvocationTargetException import java.net.URLClassLoader +import javax.swing.SwingUtilities object KotlinToJVMBytecodeCompiler { private fun writeOutput( @@ -302,10 +304,7 @@ object KotlinToJVMBytecodeCompiler { environment.updateClasspath(result.additionalJavaRoots.map { JavaSourceRoot(it, null) }) } - // Clear package caches (see KotlinJavaPsiFacade) - ApplicationManager.getApplication().runWriteAction { - (PsiManager.getInstance(environment.project).modificationTracker as? PsiModificationTrackerImpl)?.incCounter() - } + KotlinJavaPsiFacade.getInstance(environment.project).clearPackageCaches() // Clear all diagnostic messages configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY]?.clear() diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java index 6d4716c776b..2ec44f2c0d9 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java @@ -96,6 +96,10 @@ public class KotlinJavaPsiFacade { }); } + public void clearPackageCaches() { + packageCache = null; + } + public LightModifierList getEmptyModifierList() { return emptyModifierList; }