Filter also by kind to avoid getting enum descriptors from compiled code

This commit is contained in:
Nikolay Krasko
2016-11-30 16:02:41 +03:00
parent 6a9c368532
commit dbe32b98ef
@@ -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<T : KtExpression>(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)
}