From 03da569fcd1be5aff82891e229553981f2329d36 Mon Sep 17 00:00:00 2001 From: Michail Plushnikov Date: Mon, 11 Dec 2023 19:15:59 +0100 Subject: [PATCH] [lombok] IDEA-333062 IDEA-255688 replaced isPhysical by SynteticElement check GitOrigin-RevId: 4c5cdab364e926778332982e38c2933811016a35 --- .../impl/analysis/AnnotationsHighlightUtil.java | 4 ++-- .../processor/lombok/LombokAnnotationProcessor.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java index 15e381aad25e..abfde478dfe0 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/AnnotationsHighlightUtil.java @@ -125,8 +125,8 @@ public final class AnnotationsHighlightUtil { } } PsiAnnotationMethod annotationMethod = ObjectUtils.tryCast(method, PsiAnnotationMethod.class); - if (annotationMethod == null) return null; - if (!annotationMethod.isPhysical()) return null; + if (annotationMethod == null || annotationMethod instanceof SyntheticElement) return null; + boolean fromDefaultValue = PsiTreeUtil.isAncestor(annotationMethod.getDefaultValue(), value, false); if (value instanceof PsiAnnotation) { PsiJavaCodeReferenceElement nameRef = ((PsiAnnotation)value).getNameReferenceElement(); diff --git a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/lombok/LombokAnnotationProcessor.java b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/lombok/LombokAnnotationProcessor.java index 4d14cc98196b..b10f28fd588d 100644 --- a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/lombok/LombokAnnotationProcessor.java +++ b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/lombok/LombokAnnotationProcessor.java @@ -35,9 +35,18 @@ public final class LombokAnnotationProcessor { return Pair.pair(shortNamesList, fqnList); } + /** + * Processes the given PsiClass if it's a specific lombok annotation with onX functionality + * and returns a list of phantom underscored "onX_" methods + * + * @param psiClass the PsiClass to process + * @param nameHint the name hint to filter the results (optional) + * @return the list of augmented PsiMethods or empty list + * @see Lombok onX + */ @NotNull public static List process(@NotNull PsiClass psiClass, @Nullable String nameHint) { - if (nameHint != null && !ContainerUtil.exists(config.keySet(), nameHint::startsWith)) { + if (nameHint != null && !config.containsKey(nameHint)) { return Collections.emptyList(); }