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.name.FqName
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
import org.jetbrains.kotlin.script.tryConstructClassFromStringArgs import org.jetbrains.kotlin.script.tryConstructClassFromStringArgs
import org.jetbrains.kotlin.utils.newLinkedHashMapWithExpectedSize import org.jetbrains.kotlin.utils.newLinkedHashMapWithExpectedSize
import java.io.File import java.io.File
import java.lang.reflect.InvocationTargetException import java.lang.reflect.InvocationTargetException
import java.net.URLClassLoader import java.net.URLClassLoader
import javax.swing.SwingUtilities
object KotlinToJVMBytecodeCompiler { object KotlinToJVMBytecodeCompiler {
private fun writeOutput( private fun writeOutput(
@@ -302,10 +304,7 @@ object KotlinToJVMBytecodeCompiler {
environment.updateClasspath(result.additionalJavaRoots.map { JavaSourceRoot(it, null) }) environment.updateClasspath(result.additionalJavaRoots.map { JavaSourceRoot(it, null) })
} }
// Clear package caches (see KotlinJavaPsiFacade) KotlinJavaPsiFacade.getInstance(environment.project).clearPackageCaches()
ApplicationManager.getApplication().runWriteAction {
(PsiManager.getInstance(environment.project).modificationTracker as? PsiModificationTrackerImpl)?.incCounter()
}
// Clear all diagnostic messages // Clear all diagnostic messages
configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY]?.clear() configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY]?.clear()
@@ -96,6 +96,10 @@ public class KotlinJavaPsiFacade {
}); });
} }
public void clearPackageCaches() {
packageCache = null;
}
public LightModifierList getEmptyModifierList() { public LightModifierList getEmptyModifierList() {
return emptyModifierList; return emptyModifierList;
} }