From aff8a3f97fca160eb4578c9bc20c8ad039de76c2 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Tue, 28 May 2019 12:32:38 +0700 Subject: [PATCH] Fix KNPE in OptimizedImportsBuilder #KT-31637 Fixed --- .../kotlin/idea/util/OptimizedImportsBuilder.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt index 8f80c9bc5ae..6243578f59c 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt @@ -204,10 +204,7 @@ class OptimizedImportsBuilder( if (!areTargetsEqual(oldTargets, newTargets)) { testLog?.append("Changed resolve of $ref\n") (oldTargets + newTargets).forEach { - lockImportForDescriptor( - it, - data.namesToImport.getOrElse(it.importableFqName!!) { listOf(it.name) }.intersect(names) - ) + lockImportForDescriptor(it, names) } } } @@ -217,8 +214,10 @@ class OptimizedImportsBuilder( return sortedImportsToGenerate } - private fun lockImportForDescriptor(descriptor: DeclarationDescriptor, names: Collection) { + private fun lockImportForDescriptor(descriptor: DeclarationDescriptor, existingNames: Collection) { val fqName = descriptor.importableFqName ?: return + val names = data.namesToImport.getOrElse(fqName) { listOf(descriptor.name) }.intersect(existingNames) + val starImportPath = ImportPath(fqName.parent(), true) val importPaths = file.importDirectives.map { it.importPath }