Fix readAccess in IDELightClassGenerationSupport on obtaining script

#EA-211576 Fixed
This commit is contained in:
Vladimir Dolzhenko
2019-10-15 08:46:17 +02:00
parent 10ea8abc2b
commit ba01678abb
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.idea.resolve.frontendService
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
@@ -139,14 +140,15 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
}
override fun createUltraLightClass(element: KtClassOrObject): KtUltraLightClass? {
return runReadAction {
if (element.shouldNotBeVisibleAsLightClass() ||
element is KtEnumEntry ||
element.containingKtFile.isScript()
) {
return null
return@runReadAction null
}
return KtUltraLightSupportImpl(element).let { support ->
KtUltraLightSupportImpl(element).let { support ->
when {
element is KtObjectDeclaration && element.isObjectLiteral() ->
KtUltraLightClassForAnonymousDeclaration(element, support)
@@ -161,6 +163,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
}
}
}
}
private fun KtFile.hasAlias(shortName: Name?): Boolean {
if (shortName == null) return false