Repository: groovy Updated Branches: refs/heads/master f0dcf82fd -> 73125b0ec
Refine the checking of EmptyStatement and EmptyExpression further Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/73125b0e Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/73125b0e Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/73125b0e Branch: refs/heads/master Commit: 73125b0ec7edc729a3b5cc3a5cabf167bb29a1ed Parents: f0dcf82 Author: sunlan <[email protected]> Authored: Sat Jun 24 17:34:59 2017 +0800 Committer: sunlan <[email protected]> Committed: Sat Jun 24 17:34:59 2017 +0800 ---------------------------------------------------------------------- .../groovy/ast/expr/EmptyExpression.java | 20 +++++++++++--------- .../groovy/ast/stmt/EmptyStatement.java | 4 ++-- .../groovy/ast/builder/AstAssert.groovy | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/73125b0e/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java ---------------------------------------------------------------------- diff --git a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java index 7b6d9e7..0f61025 100644 --- a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java +++ b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java @@ -37,7 +37,17 @@ import java.util.Map; * @see org.codehaus.groovy.ast.stmt.EmptyStatement */ public class EmptyExpression extends Expression { - public static final EmptyExpression INSTANCE = new EmptyExpression() { + public static final EmptyExpression INSTANCE = new ImmutableEmptyExpression() ; + + public Expression transformExpression(ExpressionTransformer transformer) { + return this; + } + + public void visit(GroovyCodeVisitor visitor) { + return; + } + + private static class ImmutableEmptyExpression extends EmptyExpression { @Override public void setType(ClassNode t) { throw createUnsupportedOperationException(); @@ -121,13 +131,5 @@ public class EmptyExpression extends Expression { private UnsupportedOperationException createUnsupportedOperationException() { return new UnsupportedOperationException("EmptyExpression.INSTANCE is immutable"); } - }; - - public Expression transformExpression(ExpressionTransformer transformer) { - return this; - } - - public void visit(GroovyCodeVisitor visitor) { - return; } } http://git-wip-us.apache.org/repos/asf/groovy/blob/73125b0e/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java ---------------------------------------------------------------------- diff --git a/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java b/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java index 3f6aa93..660653cd 100644 --- a/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java +++ b/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java @@ -30,7 +30,7 @@ import java.util.Map; * @author <a href="mailto:[email protected]">James Strachan</a> */ public class EmptyStatement extends Statement { - public static final EmptyStatement INSTANCE = new ImmutableStatement(); + public static final EmptyStatement INSTANCE = new ImmutableEmptyStatement(); public void visit(GroovyCodeVisitor visitor) { } @@ -39,7 +39,7 @@ public class EmptyStatement extends Statement { return true; } - public static class ImmutableStatement extends EmptyStatement { + private static class ImmutableEmptyStatement extends EmptyStatement { @Override public void setStatementLabel(String label) { throw createUnsupportedOperationException(); http://git-wip-us.apache.org/repos/asf/groovy/blob/73125b0e/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy ---------------------------------------------------------------------- diff --git a/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy b/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy index af9fb27..98a3d6f 100644 --- a/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy +++ b/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy @@ -227,7 +227,7 @@ class AstAssert { EmptyStatement : { expected, actual -> // always successful }, - 'EmptyStatement.ImmutableStatement' : { expected, actual -> + ImmutableEmptyStatement : { expected, actual -> // always successful },
