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; }