From f93ad462825b26fef3777116a50895d6fb04c70b Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 2 Dec 2020 13:04:49 +0700 Subject: [PATCH] [java-psi] filterAnnotations: avoid Streams Usually the resulting list is 0-1 element but queried kinda often, so stream overhead is visible GitOrigin-RevId: 06f9932a35b1cfbe4c9a619de986e0c54f8c0c52 --- .../codeInsight/BaseExternalAnnotationsManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java b/java/java-psi-impl/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java index c484454aa0b9..9d9311b4c84b 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/BaseExternalAnnotationsManager.java @@ -105,10 +105,14 @@ public abstract class BaseExternalAnnotationsManager extends ExternalAnnotations @NotNull private List filterAnnotations(@NotNull List result, @NotNull String annotationFQN) { - return StreamEx.of(result) - .filter(data -> data.annotationClassFqName.equals(annotationFQN)) - .map(data -> data.getAnnotation(this)) - .toCollection(SmartList::new); + SmartList annotations = new SmartList<>(); + for (AnnotationData data : result) { + if (data.annotationClassFqName.equals(annotationFQN)) { + PsiAnnotation annotation = data.getAnnotation(this); + annotations.add(annotation); + } + } + return annotations; } @Nullable