From 72303fd2ad3223c187ea3038244774c5736d09ba Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Tue, 21 Apr 2020 14:21:13 +0300 Subject: [PATCH] Fixed possible NPE in LightClasses Fixed #EA-218014 --- .../idea/caches/resolve/IDEKotlinAsJavaSupport.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 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 1e7894d6e80..784f49f8fdf 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 @@ -246,8 +246,8 @@ class IDEKotlinAsJavaSupport(private val project: Project) : KotlinAsJavaSupport private fun findCorrespondingLightClass( decompiledClassOrObject: KtClassOrObject, rootLightClassForDecompiledFile: KtLightClassForDecompiledDeclaration - ): KtLightClassForDecompiledDeclaration { - val relativeFqName = getClassRelativeName(decompiledClassOrObject) + ): KtLightClassForDecompiledDeclaration? { + val relativeFqName = getClassRelativeName(decompiledClassOrObject) ?: return null val iterator = relativeFqName.pathSegments().iterator() val base = iterator.next() assert(rootLightClassForDecompiledFile.name == base.asString()) { @@ -267,8 +267,8 @@ class IDEKotlinAsJavaSupport(private val project: Project) : KotlinAsJavaSupport return current } - private fun getClassRelativeName(decompiledClassOrObject: KtClassOrObject): FqName { - val name = decompiledClassOrObject.nameAsName!! + private fun getClassRelativeName(decompiledClassOrObject: KtClassOrObject): FqName? { + val name = decompiledClassOrObject.nameAsName ?: return null val parent = PsiTreeUtil.getParentOfType( decompiledClassOrObject, KtClassOrObject::class.java, @@ -278,7 +278,7 @@ class IDEKotlinAsJavaSupport(private val project: Project) : KotlinAsJavaSupport assert(decompiledClassOrObject.isTopLevel()) return FqName.topLevel(name) } - return getClassRelativeName(parent).child(name) + return getClassRelativeName(parent)?.child(name) } private fun createLightClassForDecompiledKotlinFile(file: KtClsFile): KtLightClassForDecompiledDeclaration? {