diff options
-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); |