diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewElement.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewElement.kt index c513bb9d73a..54e660ef86d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewElement.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/structureView/KotlinStructureViewElement.kt @@ -35,7 +35,7 @@ import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty class KotlinStructureViewElement( - val element: NavigatablePsiElement, + element: NavigatablePsiElement, private val isInherited: Boolean = false ) : PsiTreeElementBase(element), Queryable { @@ -74,6 +74,8 @@ class KotlinStructureViewElement( } override fun getChildrenBase(): Collection { + val element = element + val children = when (element) { is KtFile -> element.declarations is KtClass -> element.getStructureDeclarations() @@ -104,14 +106,18 @@ class KotlinStructureViewElement( private fun isPublic(descriptor: DeclarationDescriptor?) = (descriptor as? DeclarationDescriptorWithVisibility)?.visibility == Visibilities.PUBLIC - private fun countDescriptor(): DeclarationDescriptor? = when { - !element.isValid -> null - element !is KtDeclaration -> null - element is KtAnonymousInitializer -> null - else -> runReadAction { - if (!DumbService.isDumb(element.getProject())) { - element.resolveToDescriptorIfAny() - } else null + private fun countDescriptor(): DeclarationDescriptor? { + val element = element + return when { + element == null -> null + !element.isValid -> null + element !is KtDeclaration -> null + element is KtAnonymousInitializer -> null + else -> runReadAction { + if (!DumbService.isDumb(element.getProject())) { + element.resolveToDescriptorIfAny() + } else null + } } } }