From f75288b48057600fe1092c639f2174fc5ef4c1ce Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 13 Nov 2019 20:00:45 +0900 Subject: [PATCH] EA-216333: check PsiElement validity before light class generation --- .../idea/caches/resolve/IDEKotlinAsJavaSupport.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDEKotlinAsJavaSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDEKotlinAsJavaSupport.kt index 2b3377d384d..0c29be445e7 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDEKotlinAsJavaSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDEKotlinAsJavaSupport.kt @@ -119,6 +119,10 @@ class IDEKotlinAsJavaSupport(private val project: Project) : KotlinAsJavaSupport } override fun getLightClass(classOrObject: KtClassOrObject): KtLightClass? { + if (!classOrObject.isValid) { + return null + } + val virtualFile = classOrObject.containingFile.virtualFile if (virtualFile != null) { when { @@ -139,8 +143,13 @@ class IDEKotlinAsJavaSupport(private val project: Project) : KotlinAsJavaSupport return null } - override fun getLightClassForScript(script: KtScript): KtLightClassForScript? = - KtLightClassForScript.create(script) + override fun getLightClassForScript(script: KtScript): KtLightClassForScript? { + if (!script.isValid) { + return null + } + + return KtLightClassForScript.create(script) + } private fun withFakeLightClasses( lightClassForFacade: KtLightClassForFacade