diff --git a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AbstractConstructorGeneratorPart.kt b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AbstractConstructorGeneratorPart.kt index 581c1217c02..b9958cb6938 100644 --- a/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AbstractConstructorGeneratorPart.kt +++ b/plugins/lombok/lombok.k2/src/org/jetbrains/kotlin/lombok/k2/generators/AbstractConstructorGeneratorPart.kt @@ -215,7 +215,7 @@ private class JavaTypeSubstitutorByMap(val map: Map) : var hasNewArguments = false val newArguments = type.typeArguments.map { argument -> if (argument == null) return@map null - val newArgument = substituteOrNull(argument) + val newArgument = substituteOrSelf(argument) if (newArgument !== argument) { hasNewArguments = true newArgument diff --git a/plugins/lombok/testData/box/allArgsConstructorInference.kt b/plugins/lombok/testData/box/allArgsConstructorInference.kt new file mode 100644 index 00000000000..69b87b8f3e9 --- /dev/null +++ b/plugins/lombok/testData/box/allArgsConstructorInference.kt @@ -0,0 +1,21 @@ +// WITH_STDLIB +// ISSUE: KT-54020 +// FILE: Celebrities.java +import java.util.List; +import lombok.AllArgsConstructor; + +@AllArgsConstructor(staticName = "invite") +public class Celebrities { + private List names; + + public List getNames() { + return names; + } +} + +// FILE: main.kt + +fun box(): String { + val celebrities = Celebrities.invite(listOf()) + return if (celebrities.names.isEmpty()) "OK" else "Fail" +} diff --git a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/BlackBoxCodegenTestForLombokGenerated.java b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/BlackBoxCodegenTestForLombokGenerated.java index f74687d45c6..aabca0c5054 100644 --- a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/BlackBoxCodegenTestForLombokGenerated.java +++ b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/BlackBoxCodegenTestForLombokGenerated.java @@ -38,6 +38,12 @@ public class BlackBoxCodegenTestForLombokGenerated extends AbstractBlackBoxCodeg runTest("plugins/lombok/testData/box/allArgsConstructor.kt"); } + @Test + @TestMetadata("allArgsConstructorInference.kt") + public void testAllArgsConstructorInference() throws Exception { + runTest("plugins/lombok/testData/box/allArgsConstructorInference.kt"); + } + @Test @TestMetadata("allArgsConstructorStatic.kt") public void testAllArgsConstructorStatic() throws Exception { diff --git a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/FirBlackBoxCodegenTestForLombokGenerated.java b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/FirBlackBoxCodegenTestForLombokGenerated.java index c8d4d9be88c..bf8e5e2d462 100644 --- a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/FirBlackBoxCodegenTestForLombokGenerated.java +++ b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/FirBlackBoxCodegenTestForLombokGenerated.java @@ -38,6 +38,12 @@ public class FirBlackBoxCodegenTestForLombokGenerated extends AbstractFirBlackBo runTest("plugins/lombok/testData/box/allArgsConstructor.kt"); } + @Test + @TestMetadata("allArgsConstructorInference.kt") + public void testAllArgsConstructorInference() throws Exception { + runTest("plugins/lombok/testData/box/allArgsConstructorInference.kt"); + } + @Test @TestMetadata("allArgsConstructorStatic.kt") public void testAllArgsConstructorStatic() throws Exception { diff --git a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/IrBlackBoxCodegenTestForLombokGenerated.java b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/IrBlackBoxCodegenTestForLombokGenerated.java index f79962af6a0..22873da3908 100644 --- a/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/IrBlackBoxCodegenTestForLombokGenerated.java +++ b/plugins/lombok/tests-gen/org/jetbrains/kotlin/lombok/IrBlackBoxCodegenTestForLombokGenerated.java @@ -38,6 +38,12 @@ public class IrBlackBoxCodegenTestForLombokGenerated extends AbstractIrBlackBoxC runTest("plugins/lombok/testData/box/allArgsConstructor.kt"); } + @Test + @TestMetadata("allArgsConstructorInference.kt") + public void testAllArgsConstructorInference() throws Exception { + runTest("plugins/lombok/testData/box/allArgsConstructorInference.kt"); + } + @Test @TestMetadata("allArgsConstructorStatic.kt") public void testAllArgsConstructorStatic() throws Exception {