diff options
author | Bulgakov Alexander <abulgakov@at-consulting.ru> | 2016-10-26 23:18:47 +0300 |
---|---|---|
committer | Bulgakov Alexander <abulgakov@at-consulting.ru> | 2016-10-26 23:18:47 +0300 |
commit | 710a04607b2c8c875d1971dd517f9eace10a14b4 (patch) | |
tree | 76dcf247f8724b3b47ee177afbce81dc97fa8b3d /src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java | |
parent | 55619e8030768fb42f8a9b4207bb330806eaceef (diff) | |
download | lombok-710a04607b2c8c875d1971dd517f9eace10a14b4.tar.gz lombok-710a04607b2c8c875d1971dd517f9eace10a14b4.tar.bz2 lombok-710a04607b2c8c875d1971dd517f9eace10a14b4.zip |
The @var annotation has been moved to the experimental package.
Added a test of a @var variable with null initialization.
Diffstat (limited to 'src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java')
-rw-r--r-- | src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java b/src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java index ec1e8309..d0c29ac8 100644 --- a/src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java +++ b/src/eclipseAgent/lombok/eclipse/agent/PatchValEclipse.java @@ -41,12 +41,7 @@ import org.eclipse.jdt.core.dom.QualifiedName; import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.SingleVariableDeclaration; import org.eclipse.jdt.core.dom.VariableDeclarationStatement; -import org.eclipse.jdt.internal.compiler.ast.ASTNode; -import org.eclipse.jdt.internal.compiler.ast.AbstractVariableDeclaration; -import org.eclipse.jdt.internal.compiler.ast.Annotation; -import org.eclipse.jdt.internal.compiler.ast.ForeachStatement; -import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration; -import org.eclipse.jdt.internal.compiler.ast.SingleTypeReference; +import org.eclipse.jdt.internal.compiler.ast.*; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.parser.Parser; @@ -65,8 +60,8 @@ public class PatchValEclipse { ForeachStatement foreachDecl = (ForeachStatement) astStack[astPtr]; ASTNode init = foreachDecl.collection; if (init == null) return; - boolean val = PatchVal.couldBe("val", foreachDecl.elementVariable.type); - boolean var = PatchVal.couldBe("var", foreachDecl.elementVariable.type); + boolean val = couldBeVal(foreachDecl.elementVariable.type); + boolean var = couldBeVar(foreachDecl.elementVariable.type); if (foreachDecl.elementVariable == null || !(val || var)) return; try { @@ -90,8 +85,8 @@ public class PatchValEclipse { if (!(variableDecl instanceof LocalDeclaration)) return; ASTNode init = variableDecl.initialization; if (init == null) return; - boolean val = PatchVal.couldBe("val", variableDecl.type); - boolean var = PatchVal.couldBe("var", variableDecl.type); + boolean val = couldBeVal(variableDecl.type); + boolean var = couldBeVar(variableDecl.type); if (!(val || var)) return; try { @@ -101,6 +96,10 @@ public class PatchValEclipse { } } + private static boolean couldBeVar(TypeReference type) { + return PatchVal.couldBe("lombok.experimental.var", type); + } + public static void addFinalAndValAnnotationToSingleVariableDeclaration(Object converter, SingleVariableDeclaration out, LocalDeclaration in) { @SuppressWarnings("unchecked") List<IExtendedModifier> modifiers = out.modifiers(); addFinalAndValAnnotationToModifierList(converter, modifiers, out.getAST(), in); @@ -119,7 +118,7 @@ public class PatchValEclipse { Annotation valAnnotation = null; for (Annotation ann : in.annotations) { - if (PatchVal.couldBe("val", ann.type)) { + if (couldBeVal(ann.type)) { found = true; valAnnotation = ann; break; @@ -171,6 +170,10 @@ public class PatchValEclipse { } } + private static boolean couldBeVal(TypeReference type) { + return PatchVal.couldBe("lombok.val", type); + } + public static Modifier createModifier(AST ast, ModifierKeyword keyword, int start, int end) { Modifier modifier = null; try { |