void (@NotNull List<? extends PsiElement> elements, @NotNull Collection<? super LineMarkerInfo<?>> result) { if (!hasIconTypeExpressions(elements)) { return; } for (PsiElement element : elements) { UCallExpression expression = UastContextKt.toUElement(element, UCallExpression.class); if (expression == null) { continue; } if (!ProjectIconsAccessor.isIconClassType(expression.getExpressionType())) { continue; } UValue uValue = UEvaluationContextKt.uValueOf(expression); if (!(uValue instanceof UCallResultValue)) { continue; } List<UValue> arguments = ((UCallResultValue)uValue).getArguments(); if (!arguments.isEmpty()) { Collection<UExpression> constants = new ArrayList<>(); for (UConstant constant : UValueKt.toPossibleConstants(arguments.get(0))) { if (constant instanceof UStringConstant) { UExpression source = constant.getSource(); constants.add(source); } } if (!constants.isEmpty()) { UIdentifier identifier = expression.getMethodIdentifier(); if (identifier != null && identifier.getSourcePsi() != null) { LineMarkerInfo<PsiElement> marker = createIconLineMarker(ContainerUtil.getFirstItem(constants), identifier.getSourcePsi()); if (marker != null) { result.add(marker); } } } } } }