From dbe32b98effaeeaec477dc72cc7bfe53ec7d6d3d Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 30 Nov 2016 16:02:41 +0300 Subject: [PATCH] Filter also by kind to avoid getting enum descriptors from compiled code --- .../org/jetbrains/kotlin/idea/quickfix/ImportFix.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ImportFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ImportFix.kt index 2be9bf7c957..52ae8743e59 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ImportFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ImportFix.kt @@ -30,12 +30,8 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiErrorElement import com.intellij.psi.PsiFile import com.intellij.psi.PsiModifier -import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.util.PsiModificationTracker -import org.jetbrains.kotlin.descriptors.CallableDescriptor -import org.jetbrains.kotlin.descriptors.DeclarationDescriptor -import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility -import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.Errors @@ -246,7 +242,10 @@ internal abstract class OrdinaryImportFixBase(expression: T, f when (TargetPlatformDetector.getPlatform(expression.getContainingKtFile())) { JsPlatform -> indicesHelper - .getKotlinClasses({ it == name }, psiFilter = { ktDeclaration -> ktDeclaration !is KtEnumEntry }) + // Enum entries should be contributes with members import fix + .getKotlinClasses({ it == name }, + psiFilter = { ktDeclaration -> ktDeclaration !is KtEnumEntry }, + kindFilter = { kind -> kind != ClassKind.ENUM_ENTRY }) .filterTo(result, filterByCallType) JvmPlatform -> indicesHelper.getJvmClassesByName(name).filterTo(result, filterByCallType) }