From c8fa8b0444f512079157c75d64a25237aa8bf9d8 Mon Sep 17 00:00:00 2001 From: Andrey Zinovyev Date: Fri, 25 Jun 2021 16:53:25 +0300 Subject: [PATCH] [lombok] Don't fail on fake overrides #KT-47455 Fixes --- .../processor/AbstractConstructorProcessor.kt | 7 +++---- .../RequiredArgsConstructorProcessor.kt | 2 +- .../testData/compile/propertyFromSuper.kt | 20 +++++++++++++++++++ .../lombok/LombokCompileTestGenerated.java | 5 +++++ 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 plugins/lombok/lombok-compiler-plugin/testData/compile/propertyFromSuper.kt diff --git a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/AbstractConstructorProcessor.kt b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/AbstractConstructorProcessor.kt index 9b100f7e0e3..f9f2f94eb5c 100644 --- a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/AbstractConstructorProcessor.kt +++ b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/AbstractConstructorProcessor.kt @@ -16,11 +16,10 @@ import org.jetbrains.kotlin.name.Name abstract class AbstractConstructorProcessor : Processor { override fun contribute(classDescriptor: ClassDescriptor, partsBuilder: SyntheticPartsBuilder) { - val valueParameters = getPropertiesForParameters(classDescriptor).map { property -> - LombokValueParameter(property.name, property.type) - } - getAnnotation(classDescriptor)?.let { annotation -> + val valueParameters = getPropertiesForParameters(classDescriptor).map { property -> + LombokValueParameter(property.name, property.type) + } if (annotation.staticName == null) { val constructor = classDescriptor.createJavaConstructor( valueParameters = valueParameters, diff --git a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/RequiredArgsConstructorProcessor.kt b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/RequiredArgsConstructorProcessor.kt index 50c4b500a5c..93ee361ed38 100644 --- a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/RequiredArgsConstructorProcessor.kt +++ b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/processor/RequiredArgsConstructorProcessor.kt @@ -24,7 +24,7 @@ class RequiredArgsConstructorProcessor : AbstractConstructorProcessor LombokNames.NON_NULL_ANNOTATIONS.contains(annotation.fqName) } diff --git a/plugins/lombok/lombok-compiler-plugin/testData/compile/propertyFromSuper.kt b/plugins/lombok/lombok-compiler-plugin/testData/compile/propertyFromSuper.kt new file mode 100644 index 00000000000..1731a594ebd --- /dev/null +++ b/plugins/lombok/lombok-compiler-plugin/testData/compile/propertyFromSuper.kt @@ -0,0 +1,20 @@ +//KT-47455 + +//FILE: ParentClass.java +public abstract class ParentClass { + int id; +} + +//FILE: ChildClass.java +import lombok.*; + +@RequiredArgsConstructor +public class ChildClass extends ParentClass {} + + +//FILE: test.kt +class Test { + fun run() { + ChildClass::class + } +} \ No newline at end of file diff --git a/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java b/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java index 2c74b502cf8..77bae4230cf 100644 --- a/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java +++ b/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java @@ -129,6 +129,11 @@ public class LombokCompileTestGenerated extends AbstractLombokCompileTest { runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/nullability.kt"); } + @TestMetadata("propertyFromSuper.kt") + public void testPropertyFromSuper() throws Exception { + runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/propertyFromSuper.kt"); + } + @TestMetadata("requiredArgsConstructor.kt") public void testRequiredArgsConstructor() throws Exception { runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/requiredArgsConstructor.kt");