From 14f52226b6121d9f49e49add909949e44958c198 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Sun, 22 Feb 2026 19:35:06 +0100 Subject: [PATCH] [feature][`@CheckReturnValue`] Make @CheckReturnValue opt-in rather than opt-out to avoid breaking existing tests. --- src/core/lombok/CheckReturnValue.java | 2 +- src/core/lombok/ConfigurationKeys.java | 2 +- src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java | 2 +- src/core/lombok/javac/handlers/JavacHandlerUtil.java | 2 +- test/transform/resource/before/CheckReturnValueBuilder.java | 1 + test/transform/resource/before/CheckReturnValueWith.java | 1 + 6 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/lombok/CheckReturnValue.java b/src/core/lombok/CheckReturnValue.java index ef8f5c61..1a8f2dcb 100644 --- a/src/core/lombok/CheckReturnValue.java +++ b/src/core/lombok/CheckReturnValue.java @@ -35,7 +35,7 @@ import java.lang.annotation.Target; * Static analysis tools (Error Prone, IntelliJ, SpotBugs) recognize {@code @CheckReturnValue} * by simple class name, regardless of package, and will warn when the return value is discarded. *

- * If you want to opt out, you can add {@code lombok.addCheckReturnValueAnnotation = false} to + * If you want to opt in, you can add {@code lombok.addCheckReturnValueAnnotation = true} to * {@code lombok.config}. */ @Target({ElementType.METHOD}) diff --git a/src/core/lombok/ConfigurationKeys.java b/src/core/lombok/ConfigurationKeys.java index 6c5c08f5..321b1de6 100644 --- a/src/core/lombok/ConfigurationKeys.java +++ b/src/core/lombok/ConfigurationKeys.java @@ -96,7 +96,7 @@ public class ConfigurationKeys { * If {@code true}, lombok generates {@code @lombok.CheckReturnValue} on generated methods where the return value should not be ignored, * such as {@code @With} methods and {@code @Builder}'s {@code build()} method. */ - public static final ConfigurationKey ADD_CHECK_RETURN_VALUE_ANNOTATIONS = new ConfigurationKey("lombok.addCheckReturnValueAnnotation", "Generate @lombok.CheckReturnValue on generated methods where the return value should not be ignored (default: true).") {}; + public static final ConfigurationKey ADD_CHECK_RETURN_VALUE_ANNOTATIONS = new ConfigurationKey("lombok.addCheckReturnValueAnnotation", "Generate @lombok.CheckReturnValue on generated methods where the return value should not be ignored (default: false).") {}; /** * lombok configuration: {@code lombok.extern.findbugs.addSuppressFBWarnings} = {@code true} | {@code false}. diff --git a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java index a479356d..8255d1cb 100644 --- a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java +++ b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java @@ -2128,7 +2128,7 @@ public class EclipseHandlerUtil { } public static Annotation[] addCheckReturnValue(EclipseNode node, ASTNode source, Annotation[] originalAnnotationArray) { - if (Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_CHECK_RETURN_VALUE_ANNOTATIONS))) return originalAnnotationArray; + if (!Boolean.TRUE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_CHECK_RETURN_VALUE_ANNOTATIONS))) return originalAnnotationArray; return addAnnotation(source, originalAnnotationArray, LOMBOK_CHECK_RETURN_VALUE); } diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index 48a2c3fb..722bb436 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -1555,7 +1555,7 @@ public class JavacHandlerUtil { } public static void addCheckReturnValue(JCModifiers mods, JavacNode node, JavacNode source) { - if (Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_CHECK_RETURN_VALUE_ANNOTATIONS))) return; + if (!Boolean.TRUE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_CHECK_RETURN_VALUE_ANNOTATIONS))) return; addAnnotation(mods, node, source, "lombok.CheckReturnValue", null); } diff --git a/test/transform/resource/before/CheckReturnValueBuilder.java b/test/transform/resource/before/CheckReturnValueBuilder.java index 1c8cb7e2..a4a904ee 100644 --- a/test/transform/resource/before/CheckReturnValueBuilder.java +++ b/test/transform/resource/before/CheckReturnValueBuilder.java @@ -1,3 +1,4 @@ +//CONF: lombok.addCheckReturnValueAnnotation = true @lombok.Builder class CheckReturnValueBuilder { private final int x; diff --git a/test/transform/resource/before/CheckReturnValueWith.java b/test/transform/resource/before/CheckReturnValueWith.java index 187a96cb..167aaae8 100644 --- a/test/transform/resource/before/CheckReturnValueWith.java +++ b/test/transform/resource/before/CheckReturnValueWith.java @@ -1,3 +1,4 @@ +//CONF: lombok.addCheckReturnValueAnnotation = true import lombok.With; class CheckReturnValueWith { @With final int x;