diff --git a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AllArgsConstructorGeneratorPart.kt b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AllArgsConstructorGeneratorPart.kt index 0e73642345a..c2b7aa3746d 100644 --- a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AllArgsConstructorGeneratorPart.kt +++ b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AllArgsConstructorGeneratorPart.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.lombok.k2.generators import com.intellij.psi.PsiField import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.declarations.utils.isStatic import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol @@ -27,6 +28,8 @@ class AllArgsConstructorGeneratorPart(session: FirSession) : AbstractConstructor } private fun FirJavaField.isFieldAllowed(): Boolean { + if (isStatic) return false + // TODO: consider adding `hasInitializer` property directly to java model val hasInitializer = (source?.psi as? PsiField)?.hasInitializer() ?: false return isVar || !hasInitializer diff --git a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/RequiredArgsConstructorGeneratorPart.kt b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/RequiredArgsConstructorGeneratorPart.kt index 091b5195cc6..173ca6011fd 100644 --- a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/RequiredArgsConstructorGeneratorPart.kt +++ b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/RequiredArgsConstructorGeneratorPart.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.lombok.k2.generators import com.intellij.psi.PsiField import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.declarations.utils.isStatic import org.jetbrains.kotlin.fir.expressions.unexpandedClassId import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.symbols.SymbolInternals @@ -29,6 +30,8 @@ class RequiredArgsConstructorGeneratorPart(session: FirSession) : AbstractConstr } private fun FirJavaField.isFieldRequired(): Boolean { + if (isStatic) return false + // TODO: consider adding `hasInitializer` property directly to java model val hasInitializer = (source?.psi as? PsiField)?.hasInitializer() ?: false if (hasInitializer) return false diff --git a/plugins/lombok/testData/box/allArgsConstructor.kt b/plugins/lombok/testData/box/allArgsConstructor.kt index 95952ee2104..99bda94b054 100644 --- a/plugins/lombok/testData/box/allArgsConstructor.kt +++ b/plugins/lombok/testData/box/allArgsConstructor.kt @@ -17,6 +17,9 @@ public class ConstructorExample { // Not part of constructor because final and initialized. @Getter private final String result = "OK"; + // Not part of constructor because static. + private static String constant; + static void javaUsage() { val generated = new ConstructorExample(12, "sdf", true); } diff --git a/plugins/lombok/testData/box/allArgsConstructorStatic.kt b/plugins/lombok/testData/box/allArgsConstructorStatic.kt index ec46409828b..81bd87e7973 100644 --- a/plugins/lombok/testData/box/allArgsConstructorStatic.kt +++ b/plugins/lombok/testData/box/allArgsConstructorStatic.kt @@ -17,6 +17,9 @@ public class ConstructorExample { // Not part of constructor because final and initialized. @Getter private final String result = "OK"; + // Not part of constructor because static. + private static String constant; + public ConstructorExample(String arg) { } diff --git a/plugins/lombok/testData/box/requiredArgsConstructor.kt b/plugins/lombok/testData/box/requiredArgsConstructor.kt index 05caa804299..1d74e6c897a 100644 --- a/plugins/lombok/testData/box/requiredArgsConstructor.kt +++ b/plugins/lombok/testData/box/requiredArgsConstructor.kt @@ -25,6 +25,9 @@ public class ConstructorExample { @NonNull private Long zzzz = 23L; + // Not required by annotation because static. + private static String constant; + static void javaUsage() { ConstructorExample generated = new ConstructorExample("foo", true); } diff --git a/plugins/lombok/testData/box/requiredArgsConstructorStatic.kt b/plugins/lombok/testData/box/requiredArgsConstructorStatic.kt index b5ea48650c3..d403a2c0f02 100644 --- a/plugins/lombok/testData/box/requiredArgsConstructorStatic.kt +++ b/plugins/lombok/testData/box/requiredArgsConstructorStatic.kt @@ -27,6 +27,9 @@ public class ConstructorExample { @NonNull Integer somethingElse; + // Not required by annotation because static. + private static String constant; + static void javaUsage() { ConstructorExample generated = ConstructorExample.build("foo", true, 12); }