diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt index e40fd37f03a..0a2179d560d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt @@ -35,8 +35,8 @@ import javax.swing.Icon class KotlinIconProvider : IconProvider(), DumbAware { override fun getIcon(psiElement: PsiElement, flags: Int): Icon? { if (psiElement is KtFile) { - val mainClass = getMainClass(psiElement) - return if (mainClass != null && psiElement.declarations.size == 1) getIcon(mainClass, flags) else KotlinIcons.FILE + val mainClass = getSingleClass(psiElement) + return if (mainClass != null) getIcon(mainClass, flags) else KotlinIcons.FILE } val result = psiElement.getBaseIcon() @@ -48,9 +48,13 @@ class KotlinIconProvider : IconProvider(), DumbAware { } companion object { - var INSTANCE = KotlinIconProvider() + fun getSingleClass(file: KtFile): KtClassOrObject? { + val mainClass = getMainClass(file) + return if (mainClass != null && file.declarations.size == 1) mainClass else null + } + fun getMainClass(file: KtFile): KtClassOrObject? { val classes = file.declarations.filterIsInstance() if (classes.size == 1 && StringUtil.getPackageName(file.name) == classes[0].name) { diff --git a/idea/src/org/jetbrains/kotlin/idea/projectView/projectViewProviders.kt b/idea/src/org/jetbrains/kotlin/idea/projectView/projectViewProviders.kt index 3dae6753b99..1da62801edb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/projectView/projectViewProviders.kt +++ b/idea/src/org/jetbrains/kotlin/idea/projectView/projectViewProviders.kt @@ -49,10 +49,8 @@ class KotlinExpandNodeProjectViewProvider : TreeStructureProvider, DumbAware { val childValue = child.value?.asKtFile() if (childValue != null) { - val declarations = childValue.declarations - - val mainClass = KotlinIconProvider.getMainClass(childValue) - if (mainClass != null && declarations.size == 1) { + val mainClass = KotlinIconProvider.getSingleClass(childValue) + if (mainClass != null) { result.add(KtClassOrObjectTreeNode(childValue.project, mainClass, settings)) } else {