aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/javac/handlers/PKG.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lombok/javac/handlers/PKG.java')
-rw-r--r--src/lombok/javac/handlers/PKG.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lombok/javac/handlers/PKG.java b/src/lombok/javac/handlers/PKG.java
index 2c038b2d..138559a9 100644
--- a/src/lombok/javac/handlers/PKG.java
+++ b/src/lombok/javac/handlers/PKG.java
@@ -28,7 +28,11 @@ class PKG {
return TransformationsUtil.toSetterName(fieldName);
}
- static boolean methodExists(String methodName, JavacAST.Node node) {
+ enum MethodExistsResult {
+ NOT_EXISTS, EXISTS_BY_USER, EXISTS_BY_LOMBOK;
+ }
+
+ static MethodExistsResult methodExists(String methodName, JavacAST.Node node) {
while ( node != null && !(node.get() instanceof JCClassDecl) ) {
node = node.up();
}
@@ -37,13 +41,15 @@ class PKG {
for ( JCTree def : ((JCClassDecl)node.get()).defs ) {
if ( def instanceof JCMethodDecl ) {
if ( ((JCMethodDecl)def).name.contentEquals(methodName) ) {
- return true;
+ JavacAST.Node existing = node.getNodeFor(def);
+ if ( existing == null || !existing.isHandled() ) return MethodExistsResult.EXISTS_BY_USER;
+ return MethodExistsResult.EXISTS_BY_LOMBOK;
}
}
}
}
- return false;
+ return MethodExistsResult.NOT_EXISTS;
}
static int toJavacModifier(AccessLevel accessLevel) {