in flutter-idea/src/io/flutter/preview/DartElementPresentationUtil.java [41:97]
public static Icon getIcon(@NotNull Element element) {
final boolean finalOrConst = element.isConst() || element.isFinal();
switch (element.getKind()) {
case ElementKind.CLASS:
return element.isAbstract() ? AbstractClass : Class;
case ElementKind.EXTENSION:
return Include;
case ElementKind.MIXIN:
return AbstractClass;
case ElementKind.CONSTRUCTOR:
return Method;
case ElementKind.CONSTRUCTOR_INVOCATION:
return CONSTRUCTOR_INVOCATION_ICON;
case ElementKind.ENUM:
return Enum;
case ElementKind.ENUM_CONSTANT:
return STATIC_FINAL_FIELD_ICON;
case ElementKind.FIELD:
if (finalOrConst && element.isTopLevelOrStatic()) return STATIC_FINAL_FIELD_ICON;
if (finalOrConst) return FINAL_FIELD_ICON;
if (element.isTopLevelOrStatic()) return STATIC_FIELD_ICON;
return Field;
case ElementKind.FUNCTION:
return element.isTopLevelOrStatic() ? TOP_LEVEL_FUNCTION_ICON : Lambda;
case ElementKind.FUNCTION_INVOCATION:
return FUNCTION_INVOCATION_ICON;
case ElementKind.FUNCTION_TYPE_ALIAS:
return DartComponentType.TYPEDEF.getIcon();
case ElementKind.GETTER:
return element.isTopLevelOrStatic() ? PropertyReadStatic : PropertyRead;
case ElementKind.METHOD:
if (element.isAbstract()) return AbstractMethod;
return element.isTopLevelOrStatic() ? STATIC_METHOD_ICON : Method;
case ElementKind.SETTER:
return element.isTopLevelOrStatic() ? PropertyWriteStatic : PropertyWrite;
case ElementKind.TOP_LEVEL_VARIABLE:
return finalOrConst ? TOP_LEVEL_CONST_ICON : TOP_LEVEL_VAR_ICON;
case ElementKind.UNIT_TEST_GROUP:
return TestSourceFolder;
case ElementKind.UNIT_TEST_TEST:
return Junit;
case ElementKind.CLASS_TYPE_ALIAS:
case ElementKind.COMPILATION_UNIT:
case ElementKind.FILE:
case ElementKind.LABEL:
case ElementKind.LIBRARY:
case ElementKind.LOCAL_VARIABLE:
case ElementKind.PARAMETER:
case ElementKind.PREFIX:
case ElementKind.TYPE_PARAMETER:
case ElementKind.UNKNOWN:
default:
return null; // unexpected
}
}