diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java index 4b734c0ab33..3a0f8294415 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java @@ -84,16 +84,15 @@ public final class KotlinDescriptorIconProvider { if (descriptor instanceof FunctionDescriptor) { FunctionDescriptor functionDescriptor = (FunctionDescriptor) descriptor; if (functionDescriptor.getExtensionReceiverParameter() != null) { - return KotlinIcons.EXTENSION_FUNCTION; + return Modality.ABSTRACT == functionDescriptor.getModality() + ? KotlinIcons.ABSTRACT_EXTENSION_FUNCTION + : KotlinIcons.EXTENSION_FUNCTION; } if (descriptor.getContainingDeclaration() instanceof ClassDescriptor) { - if (Modality.ABSTRACT == functionDescriptor.getModality()) { - return PlatformIcons.ABSTRACT_METHOD_ICON; - } - else { - return PlatformIcons.METHOD_ICON; - } + return Modality.ABSTRACT == functionDescriptor.getModality() + ? PlatformIcons.ABSTRACT_METHOD_ICON + : PlatformIcons.METHOD_ICON; } else { return KotlinIcons.FUNCTION; 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 2a64526859d..9845692b652 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt @@ -32,7 +32,6 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import javax.swing.Icon class KotlinIconProvider : IconProvider(), DumbAware { - override fun getIcon(psiElement: PsiElement, flags: Int): Icon? { if (psiElement is KtFile) { val mainClass = getMainClass(psiElement) @@ -92,10 +91,12 @@ class KotlinIconProvider : IconProvider(), DumbAware { } is KtLightClassForSourceDeclaration -> navigationElement.getBaseIcon() is KtNamedFunction -> when { - receiverTypeReference != null -> KotlinIcons.EXTENSION_FUNCTION + receiverTypeReference != null -> + if (KtPsiUtil.isAbstract(this)) KotlinIcons.ABSTRACT_EXTENSION_FUNCTION else KotlinIcons.EXTENSION_FUNCTION getStrictParentOfType() is KtClass -> if (KtPsiUtil.isAbstract(this)) PlatformIcons.ABSTRACT_METHOD_ICON else PlatformIcons.METHOD_ICON - else -> KotlinIcons.FUNCTION + else -> + KotlinIcons.FUNCTION } is KtFunctionLiteral -> KotlinIcons.LAMBDA is KtClass -> when { diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java index fcb6286c700..05cd5b42659 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java @@ -36,6 +36,7 @@ public interface KotlinIcons { Icon ANNOTATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/annotationKotlin.png"); Icon FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/function.png"); Icon EXTENSION_FUNCTION = PlatformIcons.FUNCTION_ICON; + Icon ABSTRACT_EXTENSION_FUNCTION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png"); Icon LAMBDA = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/lambda.png"); Icon VAR = PlatformIcons.VARIABLE_ICON; Icon VAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/value.png"); diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png b/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png new file mode 100644 index 00000000000..2f64867c6c3 Binary files /dev/null and b/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function.png differ diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function@2x.png b/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function@2x.png new file mode 100644 index 00000000000..66521104ff8 Binary files /dev/null and b/idea/resources/org/jetbrains/kotlin/idea/icons/abstract_extension_function@2x.png differ