[lombok] IDEA-313324 Cannot resolve the staticConstructor of Lombok @Value

GitOrigin-RevId: b1f37499752fa34d1f906f1aa30fea98860ba643
This commit is contained in:
Michail Plushnikov
2023-03-29 20:40:58 +02:00
committed by intellij-monorepo-bot
parent e8615b4f7f
commit 2cc97a1535
7 changed files with 47 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
package de.plushnikov.intellij.plugin.processor.clazz;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import de.plushnikov.intellij.plugin.LombokClassNames;
import de.plushnikov.intellij.plugin.problem.ProblemProcessingSink;
@@ -54,6 +55,10 @@ public class DataProcessor extends AbstractClassProcessor {
protected Collection<String> getNamesOfPossibleGeneratedElements(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation) {
Collection<String> result = new ArrayList<>();
final String staticConstructorName = PsiAnnotationUtil.getStringAnnotationValue(psiAnnotation, "staticConstructor", "");
if(StringUtil.isNotEmpty(staticConstructorName)) {
result.add(staticConstructorName);
}
result.addAll(getNoArgsConstructorProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));
result.addAll(getToStringProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));
result.addAll(getEqualsAndHashCodeProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));

View File

@@ -1,6 +1,7 @@
package de.plushnikov.intellij.plugin.processor.clazz;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import de.plushnikov.intellij.plugin.LombokClassNames;
import de.plushnikov.intellij.plugin.problem.ProblemProcessingSink;
@@ -51,6 +52,10 @@ public class ValueProcessor extends AbstractClassProcessor {
protected Collection<String> getNamesOfPossibleGeneratedElements(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation) {
Collection<String> result = new ArrayList<>();
final String staticConstructorName = PsiAnnotationUtil.getStringAnnotationValue(psiAnnotation, "staticConstructor", "");
if(StringUtil.isNotEmpty(staticConstructorName)) {
result.add(staticConstructorName);
}
result.addAll(getNoArgsConstructorProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));
result.addAll(getToStringProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));
result.addAll(getEqualsAndHashCodeProcessor().getNamesOfPossibleGeneratedElements(psiClass, psiAnnotation));

View File

@@ -0,0 +1,17 @@
package de.plushnikov.intellij.plugin.highlights;
public class StaticConstructorHighlightTest extends AbstractLombokHighlightsTest {
@Override
protected String getBasePath() {
return super.getBasePath() + "/staticConstructor";
}
public void testDataDto() {
doTest();
}
public void testValueDto() {
doTest();
}
}

View File

@@ -7,7 +7,7 @@ public final class ValueStaticConstructor {
}
public static void main(String[] args) {
final ValueStaticConstructor test = new ValueStaticConstructor.of(1);
final ValueStaticConstructor test = ValueStaticConstructor.of(1);
System.out.println(test);
}

View File

@@ -10,7 +10,7 @@ public class ValueStaticConstructor {
}
public static void main(String[] args) {
final ValueStaticConstructor test = new ValueStaticConstructor.of(1);
final ValueStaticConstructor test = ValueStaticConstructor.of(1);
System.out.println(test);
}
}

View File

@@ -0,0 +1,9 @@
import lombok.Data;
@Data(staticConstructor = "o3f")
public class DataDto {
private final int someInt;
public static void main(String[] args) {
DataDto.o3f(2);
}
}

View File

@@ -0,0 +1,9 @@
import lombok.Value;
@Value(staticConstructor = "o3f")
public class ValueDto {
private int someInt;
public static void main(String[] args) {
ValueDto.o3f(2);
}
}