From 10e0cba8eef1444ab8d80adc28ef5f8765166545 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Sat, 18 Nov 2023 13:40:52 +0100 Subject: [PATCH] Hide implicit constructors in eclipse tests The output varies in newer eclipse versions. To address this, lombok now disables the printing of implicit constructors for eclipse. --- .../lombok/eclipse/agent/EclipsePatcher.java | 8 ++++++++ src/eclipseAgent/lombok/launch/PatchFixesHider.java | 13 +++++++++++-- test/core/src/lombok/RunTestsViaEcj.java | 1 + .../resource/after-ecj/BuilderSimpleOnRecord.java | 5 ----- .../resource/after-ecj/BuilderSingularOnRecord.java | 6 ------ .../resource/after-ecj/ConstructorsOnRecord.java | 5 ----- test/transform/resource/after-ecj/DataOnRecord.java | 5 ----- .../after-ecj/EqualsAndHashCodeOnRecord.java | 5 ----- .../resource/after-ecj/ExtensionMethodOnRecord.java | 3 --- .../resource/after-ecj/FieldDefaultsOnRecord.java | 5 ----- .../after-ecj/FieldDefaultsViaConfigOnRecord.java | 5 ----- .../after-ecj/FieldNameConstantsOnRecord.java | 7 ------- .../resource/after-ecj/GetterOnRecord.java | 5 ----- .../resource/after-ecj/JacksonizedOnRecord.java | 5 ----- .../resource/after-ecj/LockedInRecord.java | 5 ----- .../resource/after-ecj/LoggerConfigOnRecord.java | 5 ----- .../resource/after-ecj/LoggerFloggerRecord.java | 4 ---- .../resource/after-ecj/LoggerSlf4jOnRecord.java | 5 ----- .../resource/after-ecj/SetterOnRecord.java | 5 ----- .../resource/after-ecj/SynchronizedInRecord.java | 5 ----- .../resource/after-ecj/ToStringOnRecord.java | 5 ----- .../resource/after-ecj/UtilityClassOnRecord.java | 5 ----- .../transform/resource/after-ecj/ValueOnRecord.java | 5 ----- .../resource/after-ecj/WithByOnRecord.java | 5 ----- .../resource/after-ecj/WithByOnRecordComponent.java | 5 ----- test/transform/resource/after-ecj/WithOnRecord.java | 5 ----- .../resource/after-ecj/WithOnRecordComponent.java | 5 ----- 27 files changed, 20 insertions(+), 122 deletions(-) diff --git a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java index d459c178..709dcc84 100644 --- a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java +++ b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java @@ -1028,6 +1028,14 @@ public class EclipsePatcher implements AgentLauncher.AgentLaunchable { .request(StackRequest.RETURN_VALUE, StackRequest.PARAM1) .wrapMethod(new Hook("lombok.launch.PatchFixesHider$Tests", "getBundle", "java.lang.Object", "java.lang.Object", "java.lang.Class")) .build()); + + sm.addScriptIfWitness(new String[] {"lombok/transform/TestWithEcj"}, ScriptBuilder.exitEarly() + .target(new MethodTarget("org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration", "print")) + .decisionMethod(new Hook("lombok.launch.PatchFixesHider$Tests", "isImplicitCanonicalConstructor", "boolean", "org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration", "java.lang.Object")) + .valueMethod(new Hook("lombok.launch.PatchFixesHider$Tests", "returnStringBuffer", "java.lang.StringBuffer", "java.lang.Object", "java.lang.StringBuffer")) + .request(StackRequest.THIS, StackRequest.PARAM2) + .transplant() + .build()); } } diff --git a/src/eclipseAgent/lombok/launch/PatchFixesHider.java b/src/eclipseAgent/lombok/launch/PatchFixesHider.java index 955bf07f..00c333a4 100755 --- a/src/eclipseAgent/lombok/launch/PatchFixesHider.java +++ b/src/eclipseAgent/lombok/launch/PatchFixesHider.java @@ -21,6 +21,9 @@ */ package lombok.launch; +import static lombok.eclipse.EcjAugments.ASTNode_generatedBy; +import static lombok.eclipse.Eclipse.*; + import java.io.BufferedOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -62,8 +65,6 @@ import org.eclipse.jdt.internal.corext.refactoring.structure.MemberVisibilityAdj import lombok.permit.Permit; -import static lombok.eclipse.EcjAugments.ASTNode_generatedBy; - /** These contain a mix of the following: *