Kapt: Fix 'apt+compile' mode, clear package caches directly

This commit is contained in:
Yan Zhulanow
2018-10-29 14:09:08 +09:00
parent 4e84a6b601
commit 11e23ecc70
2 changed files with 7 additions and 4 deletions
@@ -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()
@@ -96,6 +96,10 @@ public class KotlinJavaPsiFacade {
});
}
public void clearPackageCaches() {
packageCache = null;
}
public LightModifierList getEmptyModifierList() {
return emptyModifierList;
}