Fix readAccess in IDELightClassGenerationSupport on obtaining script
#EA-211576 Fixed
This commit is contained in:
+18
-15
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
|
|||||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.resolve.frontendService
|
import org.jetbrains.kotlin.idea.resolve.frontendService
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
|
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.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -139,25 +140,27 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createUltraLightClass(element: KtClassOrObject): KtUltraLightClass? {
|
override fun createUltraLightClass(element: KtClassOrObject): KtUltraLightClass? {
|
||||||
if (element.shouldNotBeVisibleAsLightClass() ||
|
return runReadAction {
|
||||||
element is KtEnumEntry ||
|
if (element.shouldNotBeVisibleAsLightClass() ||
|
||||||
element.containingKtFile.isScript()
|
element is KtEnumEntry ||
|
||||||
) {
|
element.containingKtFile.isScript()
|
||||||
return null
|
) {
|
||||||
}
|
return@runReadAction null
|
||||||
|
}
|
||||||
|
|
||||||
return KtUltraLightSupportImpl(element).let { support ->
|
KtUltraLightSupportImpl(element).let { support ->
|
||||||
when {
|
when {
|
||||||
element is KtObjectDeclaration && element.isObjectLiteral() ->
|
element is KtObjectDeclaration && element.isObjectLiteral() ->
|
||||||
KtUltraLightClassForAnonymousDeclaration(element, support)
|
KtUltraLightClassForAnonymousDeclaration(element, support)
|
||||||
|
|
||||||
element.isLocal ->
|
element.isLocal ->
|
||||||
KtUltraLightClassForLocalDeclaration(element, support)
|
KtUltraLightClassForLocalDeclaration(element, support)
|
||||||
|
|
||||||
(element.hasModifier(KtTokens.INLINE_KEYWORD)) ->
|
(element.hasModifier(KtTokens.INLINE_KEYWORD)) ->
|
||||||
KtUltraLightInlineClass(element, support)
|
KtUltraLightInlineClass(element, support)
|
||||||
|
|
||||||
else -> KtUltraLightClass(element, support)
|
else -> KtUltraLightClass(element, support)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user