Fix KNPE in KotlinAddImportActionKt.createSingleImportActionForConstructor
#KT-17525 fixed
This commit is contained in:
@@ -49,6 +49,7 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||
import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper
|
||||
import org.jetbrains.kotlin.idea.core.isVisible
|
||||
import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport
|
||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.util.CallTypeAndReceiver
|
||||
@@ -355,7 +356,12 @@ internal class ImportConstructorReferenceFix(expression: KtSimpleNameExpression)
|
||||
|
||||
val filterByCallType = callTypeAndReceiver.toFilter()
|
||||
// TODO Type-aliases
|
||||
return indicesHelper.getClassesByName(expression, name).asSequence().map { it.constructors }.flatten().filter(filterByCallType).toList()
|
||||
return indicesHelper.getClassesByName(expression, name)
|
||||
.asSequence()
|
||||
.map { it.constructors }.flatten()
|
||||
.filter { it.importableFqName != null }
|
||||
.filter(filterByCallType)
|
||||
.toList()
|
||||
}
|
||||
|
||||
override fun createAction(project: Project, editor: Editor, element: KtExpression): KotlinAddImportAction {
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// "class org.jetbrains.kotlin.idea.quickfix.ImportConstructorReferenceFix" "false"
|
||||
// ERROR: Unresolved reference: ItsInner
|
||||
|
||||
|
||||
class WithInner {
|
||||
inner class ItsInner
|
||||
}
|
||||
|
||||
fun referInner(p: WithInner.ItsInner) {
|
||||
val v = p::ItsInner<caret>()
|
||||
}
|
||||
@@ -824,6 +824,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt17525.kt")
|
||||
public void testKt17525() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/kt17525.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("libraryPropertyJsRuntime.kt")
|
||||
public void testLibraryPropertyJsRuntime() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/autoImports/libraryPropertyJsRuntime.kt");
|
||||
|
||||
Reference in New Issue
Block a user