From e547dea369a8f139357d48706469566ce4bec116 Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 10 Jan 2024 17:49:18 -0500 Subject: [PATCH] Tiny optimization for the previous fix --- .../boot/java/annotations/AnnotationHierarchies.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java index 2f03d299b..68c86c917 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java @@ -160,11 +160,11 @@ public abstract class AnnotationHierarchies { IAnnotationBinding annotationBinding, Set seen) { synchronized (lock) { if (annotationBinding.getAnnotationType() != null) { - seen.add(annotationBinding.getAnnotationType().getQualifiedName()); - return Stream.concat(Stream.of(annotationBinding), getDirectSuperAnnotationBindings(annotationBinding) - .stream() - .filter(superBinding -> !seen.contains(superBinding.getAnnotationType().getQualifiedName())) - .flatMap(superBinding -> internalFindTransitiveSuperAnnotationBindings(superBinding, seen))); + if (seen.add(annotationBinding.getAnnotationType().getQualifiedName())) { + return Stream.concat(Stream.of(annotationBinding), getDirectSuperAnnotationBindings(annotationBinding) + .stream() + .flatMap(superBinding -> internalFindTransitiveSuperAnnotationBindings(superBinding, seen))); + } } return Stream.empty(); }