aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xAUTHORS2
-rw-r--r--buildScripts/create-eclipse-project.ant.xml2
-rw-r--r--buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml14
-rw-r--r--buildScripts/ivy.xml10
-rw-r--r--src/core/lombok/EqualsAndHashCode.java23
-rw-r--r--src/core/lombok/core/AnnotationProcessor.java51
-rw-r--r--src/core/lombok/core/configuration/CheckerFrameworkVersion.java6
-rw-r--r--src/core/lombok/eclipse/EcjAugments.java (renamed from src/core/lombok/eclipse/EclipseAugments.java)15
-rw-r--r--src/core/lombok/eclipse/HandlerLibrary.java2
-rw-r--r--src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java46
-rwxr-xr-xsrc/core/lombok/eclipse/handlers/EclipseSingularsRecipes.java9
-rwxr-xr-xsrc/core/lombok/eclipse/handlers/HandleBuilder.java582
-rwxr-xr-xsrc/core/lombok/eclipse/handlers/HandleConstructor.java15
-rwxr-xr-xsrc/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java105
-rw-r--r--src/core/lombok/eclipse/handlers/HandleSuperBuilder.java517
-rw-r--r--src/core/lombok/javac/JavacASTVisitor.java26
-rw-r--r--src/core/lombok/javac/apt/LombokProcessor.java69
-rw-r--r--src/core/lombok/javac/handlers/HandleBuilder.java554
-rw-r--r--src/core/lombok/javac/handlers/HandleConstructor.java6
-rw-r--r--src/core/lombok/javac/handlers/HandleEqualsAndHashCode.java68
-rw-r--r--src/core/lombok/javac/handlers/HandleGetter.java2
-rw-r--r--src/core/lombok/javac/handlers/HandleSetter.java33
-rw-r--r--src/core/lombok/javac/handlers/HandleSuperBuilder.java610
-rw-r--r--src/core/lombok/javac/handlers/JavacHandlerUtil.java54
-rw-r--r--src/core/lombok/javac/handlers/JavacSingularsRecipes.java17
-rw-r--r--src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java2
-rw-r--r--src/core/lombok/javac/handlers/singulars/JavacJavaUtilListSingularizer.java2
-rw-r--r--src/core/lombok/javac/handlers/singulars/JavacJavaUtilSingularizer.java6
-rwxr-xr-xsrc/delombok/lombok/delombok/Delombok.java8
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java11
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java6
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/PatchJavadoc.java8
-rwxr-xr-xsrc/eclipseAgent/lombok/launch/PatchFixesHider.java10
-rw-r--r--src/stubs/com/sun/tools/javac/main/Arguments.java3
-rw-r--r--src/utils/lombok/javac/JavacTreeMaker.java127
-rw-r--r--test/core/src/lombok/DirectoryRunner.java3
-rw-r--r--test/core/src/lombok/LombokTestSource.java5
-rw-r--r--test/core/src/lombok/RunTestsViaEcj.java96
-rw-r--r--test/pretty/resource/after/TryWithResourcesVarRef.java (renamed from test/pretty/resource/after/tryWithResourcesVarRef.java)0
-rw-r--r--test/stubs/org/checkerframework/checker/calledmethods/qual/CalledMethods.java17
-rw-r--r--test/stubs/org/checkerframework/checker/calledmethods/qual/NotCalledMethods.java17
-rw-r--r--test/stubs/org/checkerframework/common/aliasing/qual/Unique.java12
-rw-r--r--test/stubs/org/checkerframework/common/returnsreceiver/qual/This.java12
-rw-r--r--test/stubs/org/checkerframework/dataflow/qual/Pure.java12
-rw-r--r--test/stubs/org/checkerframework/dataflow/qual/SideEffectFree.java12
-rw-r--r--test/transform/resource/after-delombok/BuilderWithDeprecatedAnnOnly.java104
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkBasic.java14
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkBuilder.java26
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java44
-rw-r--r--test/transform/resource/after-delombok/EqualsAndHashCodeCache.java167
-rw-r--r--test/transform/resource/after-delombok/WithMethodMarkedDeprecatedAnnOnly.java11
-rw-r--r--test/transform/resource/after-ecj/BuilderWithDeprecatedAnnOnly.java88
-rw-r--r--test/transform/resource/after-ecj/CheckerFrameworkBasic.java10
-rw-r--r--test/transform/resource/after-ecj/CheckerFrameworkBuilder.java20
-rw-r--r--test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java40
-rw-r--r--test/transform/resource/after-ecj/EqualsAndHashCodeCache.java189
-rw-r--r--test/transform/resource/after-ecj/GetterSetterJavadocEcj.java86
-rw-r--r--test/transform/resource/after-ecj/SetterDeprecatedEcj.java14
-rw-r--r--test/transform/resource/after-ecj/WithMethodMarkedDeprecatedAnnOnly.java11
-rw-r--r--test/transform/resource/before/BuilderJavadoc.java1
-rw-r--r--test/transform/resource/before/BuilderWithDeprecated.java1
-rw-r--r--test/transform/resource/before/BuilderWithDeprecatedAnnOnly.java10
-rw-r--r--test/transform/resource/before/CheckerFrameworkBasic.java3
-rw-r--r--test/transform/resource/before/DelegateAlreadyImplemented.java1
-rw-r--r--test/transform/resource/before/DelegateFlagUsage.java1
-rw-r--r--test/transform/resource/before/DelegateGenerics.java1
-rw-r--r--test/transform/resource/before/DelegateOnGetter.java1
-rw-r--r--test/transform/resource/before/DelegateOnGetterNone.java1
-rw-r--r--test/transform/resource/before/DelegateOnMethods.java1
-rw-r--r--test/transform/resource/before/DelegateOnStatic.java1
-rw-r--r--test/transform/resource/before/DelegateRecursion.java1
-rw-r--r--test/transform/resource/before/DelegateTypesAndExcludes.java1
-rw-r--r--test/transform/resource/before/DelegateWithDeprecated.java1
-rw-r--r--test/transform/resource/before/DelegateWithVarargs.java1
-rw-r--r--test/transform/resource/before/DelegateWithVarargs2.java1
-rw-r--r--test/transform/resource/before/EqualsAndHashCodeCache.java29
-rw-r--r--test/transform/resource/before/GetterDeprecated.java3
-rw-r--r--test/transform/resource/before/GetterSetterJavadoc.java1
-rw-r--r--test/transform/resource/before/GetterSetterJavadocEcj.java65
-rw-r--r--test/transform/resource/before/OnXJava7StyleOn8.java2
-rw-r--r--test/transform/resource/before/OnXJava8StyleOn7.java2
-rw-r--r--test/transform/resource/before/SetterAndWithMethodJavadoc.java1
-rw-r--r--test/transform/resource/before/SetterDeprecated.java3
-rw-r--r--test/transform/resource/before/SetterDeprecatedEcj.java12
-rw-r--r--test/transform/resource/before/ValDelegateMethodReference.java2
-rw-r--r--test/transform/resource/before/WithMethodMarkedDeprecated.java1
-rw-r--r--test/transform/resource/before/WithMethodMarkedDeprecatedAnnOnly.java10
-rw-r--r--test/transform/resource/messages-delombok/CheckerFrameworkBasic.java.messages4
-rw-r--r--test/transform/resource/messages-delombok/CheckerFrameworkBuilder.java.messages1
-rw-r--r--test/transform/resource/messages-delombok/CheckerFrameworkSuperBuilder.java.messages3
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkBuilder.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages1
-rw-r--r--test/transform/resource/messages-idempotent/CheckerFrameworkBasic.java.messages10
94 files changed, 2932 insertions, 1278 deletions
diff --git a/AUTHORS b/AUTHORS
index 9adf2005..fda11977 100755
--- a/AUTHORS
+++ b/AUTHORS
@@ -2,6 +2,7 @@ Lombok contributors in alphabetical order:
Adam Juraszek <juriad@gmail.com>
Aleksandr Zhelezniak <lekan1992@gmail.com>
+Andre Brait <andrebrait@gmail.com>
Bulgakov Alexander <buls@yandex.ru>
Caleb Brinkman <floralvikings@gmail.com>
Christian Nüssgens <christian@nuessgens.com>
@@ -23,6 +24,7 @@ Maarten Mulders <mthmulders@users.noreply.github.com>
Mark Haynes <markhaynes.work@gmail.com>
Mart Hagenaars <marthagenaars@gmail.com>
Mateusz Matela <mateusz.matela@gmail.com>
+Michael Ernst <mernst@alum.mit.edu>
Michiel Verheul <cheelio@gmail.com>
Pascal Bihler <pascal@qfs.de>
Peter Grant <petercgrant@users.noreply.github.com>
diff --git a/buildScripts/create-eclipse-project.ant.xml b/buildScripts/create-eclipse-project.ant.xml
index da91964f..383ebd8b 100644
--- a/buildScripts/create-eclipse-project.ant.xml
+++ b/buildScripts/create-eclipse-project.ant.xml
@@ -96,7 +96,7 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<path refid="cp.buildtools" />
<pathelement location="build/support" />
</classpath>
- <arg value="name=Lombok-test Javac14" />
+ <arg value="name=Lombok-test Javac 14" />
<arg value="testType=lombok.TestJavac" />
<arg value="jvmTarget=14" />
<arg value="conf.test=${cp.test}" />
diff --git a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml
new file mode 100644
index 00000000..1ca9c743
--- /dev/null
+++ b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml
@@ -0,0 +1,14 @@
+<ivy-module version="2.0">
+ <info organisation="org.projectlombok" module="lombok.patcher" revision="0.38" publication="20201008193000">
+ <license name="MIT License" url="https://www.opensource.org/licenses/mit-license.php" />
+ <ivyauthor name="rzwitserloot" url="https://github.com/rzwitserloot" />
+ <ivyauthor name="rspilker" url="https://github.com/rspilker" />
+ <description homepage="https://projectlombok.org/" />
+ </info>
+ <configurations>
+ <conf name="default" />
+ </configurations>
+ <publications>
+ <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.38.jar" />
+ </publications>
+</ivy-module>
diff --git a/buildScripts/ivy.xml b/buildScripts/ivy.xml
index 3dfbde7e..8383d00a 100644
--- a/buildScripts/ivy.xml
+++ b/buildScripts/ivy.xml
@@ -10,7 +10,7 @@
<!-- test: base dependencies required to run the tests. Does not include javac or ecj. -->
<conf name="test" />
- <!-- stripe: dependencies that need to be on the classpath during builds -->
+ <!-- build: dependencies that need to be on the classpath during builds -->
<conf name="build" />
<!-- stripe: dependencies that need to be striped into lombok.jar itself, and are required for both build and test/run purposes -->
@@ -36,7 +36,7 @@
</configurations>
<dependencies>
- <dependency org="org.projectlombok" name="lombok.patcher" rev="0.36" conf="build,stripe->default" />
+ <dependency org="org.projectlombok" name="lombok.patcher" rev="0.38" conf="build,stripe->default" />
<dependency org="zwitserloot.com" name="cmdreader" rev="1.2" conf="build,stripe->runtime" />
<dependency org="projectlombok.org" name="spi" rev="0.2.7" conf="build" />
<dependency org="org.apache.ant" name="ant" rev="1.10.5" conf="build->default" />
@@ -85,7 +85,10 @@
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.core" rev="3.13.102" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.ui" rev="3.13.100" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.common" rev="3.9.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.registry" rev="3.7.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.app" rev="1.3.400" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.resources" rev="3.12.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.core.contenttype" rev="3.6.0" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.jobs" rev="3.9.0" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.osgi" rev="3.12.100" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.text" rev="3.6.100" conf="eclipse-oxygen->default" transitive="false" />
@@ -95,7 +98,10 @@
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.ui" rev="3.21.100" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.common" rev="3.12.0" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.preferences" rev="3.8.0" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.registry" rev="3.8.700" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.app" rev="1.4.400" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.resources" rev="3.13.700" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.core.contenttype" rev="3.7.600" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.jobs" rev="3.10.800" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.osgi" rev="3.15.300" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.text" rev="3.10.200" conf="eclipse-202006->default" transitive="false" />
diff --git a/src/core/lombok/EqualsAndHashCode.java b/src/core/lombok/EqualsAndHashCode.java
index 6805d214..279e6e3d 100644
--- a/src/core/lombok/EqualsAndHashCode.java
+++ b/src/core/lombok/EqualsAndHashCode.java
@@ -71,6 +71,14 @@ public @interface EqualsAndHashCode {
* @return If {@code true}, always use direct field access instead of calling the getter method.
*/
boolean doNotUseGetters() default false;
+
+ /**
+ * Determines how the result of the {@code hashCode} method will be cached.
+ * <strong>default: {@link CacheStrategy#NEVER}</strong>
+ *
+ * @return The {@code hashCode} cache strategy to be used.