aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/javac/handlers
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2015-01-21 01:11:26 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2015-01-21 01:11:26 +0100
commitcd139f46355ea01276c2ae13248a2aca5111678a (patch)
tree4216fb7f8aab71bc14496794562feb6106b1d07c /src/core/lombok/javac/handlers
parentef60d1af001204622b428e78894c967a9aee7e91 (diff)
downloadlombok-cd139f46355ea01276c2ae13248a2aca5111678a.tar.gz
lombok-cd139f46355ea01276c2ae13248a2aca5111678a.tar.bz2
lombok-cd139f46355ea01276c2ae13248a2aca5111678a.zip
[@Singular @Builder] Our recipe for guava builders did not work in javac 1.7 and below; fixed.
Diffstat (limited to 'src/core/lombok/javac/handlers')
-rw-r--r--src/core/lombok/javac/handlers/JavacSingularsRecipes.java12
-rw-r--r--src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java3
2 files changed, 12 insertions, 3 deletions
diff --git a/src/core/lombok/javac/handlers/JavacSingularsRecipes.java b/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
index e60bc247..53e01ebb 100644
--- a/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
+++ b/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
@@ -215,10 +215,17 @@ public class JavacSingularsRecipes {
*/
protected JCExpression addTypeArgs(int count, boolean addExtends, JavacNode node, JCExpression type, List<JCExpression> typeArgs, JCTree source) {
JavacTreeMaker maker = node.getTreeMaker();
+ List<JCExpression> clonedAndFixedTypeArgs = createTypeArgs(count, addExtends, node, typeArgs, source);
+
+ return maker.TypeApply(type, clonedAndFixedTypeArgs);
+ }
+
+ protected List<JCExpression> createTypeArgs(int count, boolean addExtends, JavacNode node, List<JCExpression> typeArgs, JCTree source) {
+ JavacTreeMaker maker = node.getTreeMaker();
Context context = node.getContext();
if (count < 0) throw new IllegalArgumentException("count is negative");
- if (count == 0) return type;
+ if (count == 0) return List.nil();
ListBuffer<JCExpression> arguments = new ListBuffer<JCExpression>();
if (typeArgs != null) for (JCExpression orig : typeArgs) {
@@ -255,7 +262,8 @@ public class JavacSingularsRecipes {
arguments.append(chainDots(node, "java", "lang", "Object"));
}
}
- return maker.TypeApply(type, arguments.toList());
+
+ return arguments.toList();
}
/** Generates 'this.<em>name</em>.size()' as an expression; if nullGuard is true, it's this.name == null ? 0 : this.name.size(). */
diff --git a/src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java b/src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java
index a45faae4..2474ce7b 100644
--- a/src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java
+++ b/src/core/lombok/javac/handlers/singulars/JavacGuavaSingularizer.java
@@ -159,7 +159,8 @@ abstract class JavacGuavaSingularizer extends JavacSingularizer {
JCExpression empty; {
//ImmutableX.of()
JCExpression emptyMethod = chainDots(builderType, "com", "google", "common", "collect", getSimpleTargetTypeName(data), "of");
- empty = maker.Apply(jceBlank, emptyMethod, jceBlank);
+ List<JCExpression> invokeTypeArgs = createTypeArgs(mapMode ? 2 : 1, false, builderType, data.getTypeArgs(), source);
+ empty = maker.Apply(invokeTypeArgs, emptyMethod, jceBlank);
}
JCExpression invokeBuild; {