Repository: groovy Updated Branches: refs/heads/master ee2a8f572 -> 33be1e1d5
Minor refactoring: fix potential performance issue and extract variable Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/33be1e1d Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/33be1e1d Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/33be1e1d Branch: refs/heads/master Commit: 33be1e1d51dd0b238ee551eff0c46a2306b7e339 Parents: ee2a8f5 Author: sunlan <sun...@apache.org> Authored: Tue Feb 27 08:29:01 2018 +0800 Committer: sunlan <sun...@apache.org> Committed: Tue Feb 27 08:29:01 2018 +0800 ---------------------------------------------------------------------- .../groovy/macro/matcher/ContextualClassCodeVisitor.java | 4 +--- .../groovy/org/codehaus/groovy/macro/matcher/TreeContext.java | 2 ++ .../org/codehaus/groovy/macro/methods/MacroGroovyMethods.java | 5 +++-- .../groovy/macro/transform/MacroCallTransformingVisitor.java | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java index f062837..efcdc9e 100644 --- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java +++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/ContextualClassCodeVisitor.java @@ -555,9 +555,7 @@ public abstract class ContextualClassCodeVisitor extends ClassCodeVisitorSupport public List<TreeContext> getTreePath() { List<TreeContext> path = new LinkedList<TreeContext>(); path.add(lastContext); - for (TreeContext treeContext : treeContextStack) { - path.add(treeContext); - } + path.addAll(treeContextStack); return path; } http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java index de31c8a..f8fd564 100644 --- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java +++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/matcher/TreeContext.java @@ -42,6 +42,8 @@ public class TreeContext { final Map<Object, List<?>> userdata = MapWithDefault.newInstance( new HashMap<Object, List<?>>(), new Closure(this) { + private static final long serialVersionUID = -4694773031569936343L; + public Object doCall(Object key) { return new LinkedList<Object>(); } http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java index ee5e9c7..2a14a30 100644 --- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java +++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/methods/MacroGroovyMethods.java @@ -195,12 +195,13 @@ public class MacroGroovyMethods { protected static ClosureExpression getClosureArgument(SourceUnit source, MethodCallExpression call) { TupleExpression tupleArguments = getMacroArguments(source, call); - if (tupleArguments == null || tupleArguments.getExpressions().size() < 1) { + int size = tupleArguments.getExpressions().size(); + if (tupleArguments == null || size < 1) { source.addError(new SyntaxException("Call arguments should have at least one argument" + '\n', tupleArguments)); return null; } - Expression result = tupleArguments.getExpression(tupleArguments.getExpressions().size() - 1); + Expression result = tupleArguments.getExpression(size - 1); if (!(result instanceof ClosureExpression)) { source.addError(new SyntaxException("Last call argument should be a closure" + '\n', result)); return null; http://git-wip-us.apache.org/repos/asf/groovy/blob/33be1e1d/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java index 77d3196..54929b3 100644 --- a/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java +++ b/subprojects/groovy-macro/src/main/groovy/org/codehaus/groovy/macro/transform/MacroCallTransformingVisitor.java @@ -158,7 +158,7 @@ class MacroCallTransformingVisitor extends ClassCodeVisitorSupport { call.setSafe(false); call.setImplicitThis(false); call.setArguments(result); - call.setGenericsTypes(new GenericsType[0]); + call.setGenericsTypes(GenericsType.EMPTY_ARRAY); return true; }