diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-11-18 20:47:58 +0100 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-11-18 20:47:58 +0100 |
commit | ca24a4c3ec6c328463a07ce171c413f96be14d95 (patch) | |
tree | 0512a70fc2bae428944fc0ee77960d65e6d30a1d /src/core/lombok | |
parent | c86d0fcc37cee701d9781e255e5fc22dc9e2fa41 (diff) | |
download | lombok-ca24a4c3ec6c328463a07ce171c413f96be14d95.tar.gz lombok-ca24a4c3ec6c328463a07ce171c413f96be14d95.tar.bz2 lombok-ca24a4c3ec6c328463a07ce171c413f96be14d95.zip |
Fixed @AllArgsConstructor screwing up with final fields that have been initialized.
Diffstat (limited to 'src/core/lombok')
-rw-r--r-- | src/core/lombok/eclipse/handlers/HandleConstructor.java | 6 | ||||
-rw-r--r-- | src/core/lombok/javac/handlers/HandleConstructor.java | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/core/lombok/eclipse/handlers/HandleConstructor.java b/src/core/lombok/eclipse/handlers/HandleConstructor.java index 826d4c1c..f5025b19 100644 --- a/src/core/lombok/eclipse/handlers/HandleConstructor.java +++ b/src/core/lombok/eclipse/handlers/HandleConstructor.java @@ -130,10 +130,12 @@ public class HandleConstructor { for (EclipseNode child : typeNode.down()) { if (child.getKind() != Kind.FIELD) continue; FieldDeclaration fieldDecl = (FieldDeclaration) child.get(); - //Skip fields that start with $ + // Skip fields that start with $ if (fieldDecl.name.length > 0 && fieldDecl.name[0] == '$') continue; - //Skip static fields. + // Skip static fields. if ((fieldDecl.modifiers & ClassFileConstants.AccStatic) != 0) continue; + // Skip initialized final fields. + if (((fieldDecl.modifiers & ClassFileConstants.AccFinal) != 0) && fieldDecl.initialization != null) continue; fields.add(child); } new HandleConstructor().generateConstructor(typeNode, level, fields, staticName, false, suppressConstructorProperties, ast); diff --git a/src/core/lombok/javac/handlers/HandleConstructor.java b/src/core/lombok/javac/handlers/HandleConstructor.java index 3370685e..7f0c2ba6 100644 --- a/src/core/lombok/javac/handlers/HandleConstructor.java +++ b/src/core/lombok/javac/handlers/HandleConstructor.java @@ -130,11 +130,13 @@ public class HandleConstructor { for (JavacNode child : typeNode.down()) { if (child.getKind() != Kind.FIELD) continue; JCVariableDecl fieldDecl = (JCVariableDecl) child.get(); - //Skip fields that start with $ + // Skip fields that start with $ if (fieldDecl.name.toString().startsWith("$")) continue; long fieldFlags = fieldDecl.mods.flags; - //Skip static fields. + // Skip static fields. if ((fieldFlags & Flags.STATIC) != 0) continue; + // Skip initialized final fields. + if (((fieldFlags & Flags.FINAL) != 0) && fieldDecl.init != null) continue; fields.append(child); } new HandleConstructor().generateConstructor(typeNode, level, fields.toList(), staticName, false, suppressConstructorProperties); |