mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 15:52:01 +07:00
[java-lombok] IDEA-352726 Augment class in dumb mode in Lombok
- refactor tests GitOrigin-RevId: ef64d0bdabff09da0bed2e48d3ddc5e134cc288a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2ca5b2bcd4
commit
4fb5a8d60e
@@ -11,6 +11,7 @@ import com.intellij.testFramework.DumbModeTestUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import de.plushnikov.intellij.plugin.util.PsiElementUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Predicate;
|
||||
@@ -190,16 +191,15 @@ public abstract class AbstractLombokParsingTestCase extends AbstractLombokLightC
|
||||
}
|
||||
|
||||
private void compareAnnotations(PsiModifierList beforeModifierList, PsiModifierList afterModifierList) {
|
||||
DumbService dumbService = DumbService.getInstance(beforeModifierList.getProject());
|
||||
if (shouldCompareAnnotations()) {
|
||||
Collection<String> beforeAnnotations = Arrays.stream(beforeModifierList.getAnnotations())
|
||||
.map(an-> dumbService.computeWithAlternativeResolveEnabled(()->an.getQualifiedName()))
|
||||
.map(an-> getAnnotationQualifiedName(an))
|
||||
.filter(Pattern.compile("lombok.*").asPredicate().negate().or(LombokClassNames.NON_NULL::equals))
|
||||
.filter(Pattern.compile(annotationToComparePattern()).asPredicate())
|
||||
.filter(Predicate.not(annotationsToIgnoreList()::contains))
|
||||
.toList();
|
||||
Collection<String> afterAnnotations = Arrays.stream(afterModifierList.getAnnotations())
|
||||
.map(an-> dumbService.computeWithAlternativeResolveEnabled(()->an.getQualifiedName()))
|
||||
.map(an-> getAnnotationQualifiedName(an))
|
||||
.filter(Pattern.compile(annotationToComparePattern()).asPredicate())
|
||||
.filter(Predicate.not(annotationsToIgnoreList()::contains))
|
||||
.toList();
|
||||
@@ -211,10 +211,8 @@ public abstract class AbstractLombokParsingTestCase extends AbstractLombokLightC
|
||||
|
||||
// compare annotations parameter list
|
||||
for (PsiAnnotation beforeAnnotation : beforeModifierList.getAnnotations()) {
|
||||
String qualifiedName =
|
||||
dumbService.computeWithAlternativeResolveEnabled(() -> beforeAnnotation.getQualifiedName());
|
||||
PsiAnnotation afterAnnotation =
|
||||
dumbService.computeWithAlternativeResolveEnabled(() -> afterModifierList.findAnnotation(qualifiedName));
|
||||
String qualifiedName = getAnnotationQualifiedName(beforeAnnotation);
|
||||
PsiAnnotation afterAnnotation = findAnnotation(afterModifierList, qualifiedName);
|
||||
if (null != afterAnnotation) {
|
||||
Map<String, String> beforeParameter = Stream.of(beforeAnnotation.getParameterList().getAttributes())
|
||||
.collect(Collectors.toMap(PsiNameValuePair::getAttributeName, p -> p.getValue().getText()));
|
||||
@@ -226,6 +224,16 @@ public abstract class AbstractLombokParsingTestCase extends AbstractLombokLightC
|
||||
}
|
||||
}
|
||||
|
||||
private static @Nullable PsiAnnotation findAnnotation(PsiModifierList modifierList, String qualifiedName) {
|
||||
return DumbService.getInstance(modifierList.getProject())
|
||||
.computeWithAlternativeResolveEnabled(() -> modifierList.findAnnotation(qualifiedName));
|
||||
}
|
||||
|
||||
private static @Nullable String getAnnotationQualifiedName(PsiAnnotation annotation) {
|
||||
return DumbService.getInstance(annotation.getProject())
|
||||
.computeWithAlternativeResolveEnabled(() -> annotation.getQualifiedName());
|
||||
}
|
||||
|
||||
private void compareMethods(PsiClass beforeClass, PsiClass afterClass) {
|
||||
PsiMethod[] beforeMethods = beforeClass.getMethods();
|
||||
PsiMethod[] afterMethods = afterClass.getMethods();
|
||||
|
||||
Reference in New Issue
Block a user