aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/lombok/javac/handlers/HandleExtensionMethod.java3
-rw-r--r--test/transform/resource/after-delombok/ExtensionMethodNonStatic.java12
-rw-r--r--test/transform/resource/after-ecj/ExtensionMethodNonStatic.java18
-rw-r--r--test/transform/resource/before/ExtensionMethodNonStatic.java15
4 files changed, 47 insertions, 1 deletions
diff --git a/src/core/lombok/javac/handlers/HandleExtensionMethod.java b/src/core/lombok/javac/handlers/HandleExtensionMethod.java
index dd565f72..4fc71de6 100644
--- a/src/core/lombok/javac/handlers/HandleExtensionMethod.java
+++ b/src/core/lombok/javac/handlers/HandleExtensionMethod.java
@@ -117,7 +117,8 @@ public class HandleExtensionMethod extends JavacAnnotationHandler<ExtensionMetho
if (tsym != null) for (Symbol member : tsym.getEnclosedElements()) {
if (member.getKind() != ElementKind.METHOD) continue;
MethodSymbol method = (MethodSymbol) member;
- if ((method.flags() & (STATIC | PUBLIC)) == 0) continue;
+ if ((method.flags() & STATIC) == 0) continue;
+ if ((method.flags() & PUBLIC) == 0) continue;
if (method.params().isEmpty()) continue;
extensionMethods.add(method);
}
diff --git a/test/transform/resource/after-delombok/ExtensionMethodNonStatic.java b/test/transform/resource/after-delombok/ExtensionMethodNonStatic.java
new file mode 100644
index 00000000..c0f71308
--- /dev/null
+++ b/test/transform/resource/after-delombok/ExtensionMethodNonStatic.java
@@ -0,0 +1,12 @@
+class ExtensionMethodNonStatic {
+ public void test() {
+ String s = "test";
+ s.startsWith("");
+ }
+
+ static class Extensions {
+ public boolean startsWith(String s, String prefix) {
+ return s.startsWith(prefix);
+ }
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/ExtensionMethodNonStatic.java b/test/transform/resource/after-ecj/ExtensionMethodNonStatic.java
new file mode 100644
index 00000000..e2362790
--- /dev/null
+++ b/test/transform/resource/after-ecj/ExtensionMethodNonStatic.java
@@ -0,0 +1,18 @@
+import lombok.experimental.ExtensionMethod;
+@ExtensionMethod({ExtensionMethodNonStatic.Extensions.class}) class ExtensionMethodNonStatic {
+ static class Extensions {
+ Extensions() {
+ super();
+ }
+ public boolean startsWith(String s, String prefix) {
+ return s.startsWith(prefix);
+ }
+ }
+ ExtensionMethodNonStatic() {
+ super();
+ }
+ public void test() {
+ String s = "test";
+ s.startsWith("");
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/before/ExtensionMethodNonStatic.java b/test/transform/resource/before/ExtensionMethodNonStatic.java
new file mode 100644
index 00000000..9ccaaedd
--- /dev/null
+++ b/test/transform/resource/before/ExtensionMethodNonStatic.java
@@ -0,0 +1,15 @@
+import lombok.experimental.ExtensionMethod;
+
+@ExtensionMethod({ExtensionMethodNonStatic.Extensions.class})
+class ExtensionMethodNonStatic {
+ public void test() {
+ String s = "test";
+ s.startsWith("");
+ }
+
+ static class Extensions {
+ public boolean startsWith(String s, String prefix) {
+ return s.startsWith(prefix);
+ }
+ }
+}