You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2017/06/24 11:12:33 UTC

groovy git commit: Revert immutable empty expression and statement changes further

Repository: groovy
Updated Branches:
  refs/heads/master 3ce5e79af -> 89b5b072a


Revert immutable empty expression and statement changes further


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/89b5b072
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/89b5b072
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/89b5b072

Branch: refs/heads/master
Commit: 89b5b072a9947bb55292c1d2010d1c67e57d68c9
Parents: 3ce5e79
Author: sunlan <su...@apache.org>
Authored: Sat Jun 24 19:12:24 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jun 24 19:12:24 2017 +0800

----------------------------------------------------------------------
 .../groovy/ast/expr/EmptyExpression.java        | 95 +-------------------
 .../groovy/ast/stmt/EmptyStatement.java         | 72 +--------------
 .../groovy/ast/CodeVisitorSupportTest.groovy    |  4 +-
 .../groovy/ast/builder/AstAssert.groovy         | 25 +-----
 4 files changed, 8 insertions(+), 188 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/89b5b072/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 b673b25..ae957a6 100644
--- a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
+++ b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java
@@ -18,14 +18,7 @@
  */
 package org.codehaus.groovy.ast.expr;
 
-import org.codehaus.groovy.ast.ASTNode;
-import org.codehaus.groovy.ast.AnnotationNode;
-import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.GroovyCodeVisitor;
-import org.codehaus.groovy.ast.NodeMetaDataHandler;
-
-import java.util.List;
-import java.util.Map;
 
 /**
  * This class is a place holder for an empty expression. 
@@ -38,7 +31,7 @@ import java.util.Map;
  */
 
 public class EmptyExpression extends Expression {
-    public static final EmptyExpression INSTANCE = new ImmutableEmptyExpression() ;
+    public static final EmptyExpression INSTANCE = new EmptyExpression();
 
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;
@@ -47,90 +40,4 @@ public class EmptyExpression extends Expression {
     public void visit(GroovyCodeVisitor visitor) {
         return;
     }
-
-    private static class ImmutableEmptyExpression extends EmptyExpression {
-        @Override
-        public void setType(ClassNode t) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void addAnnotation(AnnotationNode value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void addAnnotations(List<AnnotationNode> annotations) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setSynthetic(boolean synthetic) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setDeclaringClass(ClassNode declaringClass) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setHasNoRealSourcePosition(boolean value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLineNumber(int lineNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setColumnNumber(int columnNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLastLineNumber(int lastLineNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLastColumnNumber(int lastColumnNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setSourcePosition(ASTNode node) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void copyNodeMetaData(NodeMetaDataHandler other) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setNodeMetaData(Object key, Object value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public Object putNodeMetaData(Object key, Object value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void removeNodeMetaData(Object key) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setMetaDataMap(Map<?, ?> metaDataMap) {
-            throw createUnsupportedOperationException();
-        }
-
-        private UnsupportedOperationException createUnsupportedOperationException() {
-            return new UnsupportedOperationException("EmptyExpression.INSTANCE is immutable");
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/89b5b072/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 82ebff4..6f44b1f 100644
--- a/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
+++ b/src/main/org/codehaus/groovy/ast/stmt/EmptyStatement.java
@@ -18,11 +18,7 @@
  */
 package org.codehaus.groovy.ast.stmt;
 
-import org.codehaus.groovy.ast.ASTNode;
 import org.codehaus.groovy.ast.GroovyCodeVisitor;
-import org.codehaus.groovy.ast.NodeMetaDataHandler;
-
-import java.util.Map;
 
 /**
  * Represents an empty statement
@@ -31,7 +27,7 @@ import java.util.Map;
  */
 
 public class EmptyStatement extends Statement {
-    public static final EmptyStatement INSTANCE = new ImmutableEmptyStatement();
+    public static final EmptyStatement INSTANCE = new EmptyStatement();
     
     public void visit(GroovyCodeVisitor visitor) {
     }
@@ -39,70 +35,4 @@ public class EmptyStatement extends Statement {
     public boolean isEmpty() {
         return true;
     }
-
-    private static class ImmutableEmptyStatement extends EmptyStatement {
-        @Override
-        public void setStatementLabel(String label) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void addStatementLabel(String label) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLineNumber(int lineNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setColumnNumber(int columnNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLastLineNumber(int lastLineNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setLastColumnNumber(int lastColumnNumber) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setSourcePosition(ASTNode node) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void copyNodeMetaData(NodeMetaDataHandler other) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setNodeMetaData(Object key, Object value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public Object putNodeMetaData(Object key, Object value) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void removeNodeMetaData(Object key) {
-            throw createUnsupportedOperationException();
-        }
-
-        @Override
-        public void setMetaDataMap(Map<?, ?> metaDataMap) {
-            throw createUnsupportedOperationException();
-        }
-
-        private UnsupportedOperationException createUnsupportedOperationException() {
-            return new UnsupportedOperationException("EmptyStatement.INSTANCE is immutable");
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/89b5b072/src/test/org/codehaus/groovy/ast/CodeVisitorSupportTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/ast/CodeVisitorSupportTest.groovy b/src/test/org/codehaus/groovy/ast/CodeVisitorSupportTest.groovy
index cef9ee9..6d8e973 100644
--- a/src/test/org/codehaus/groovy/ast/CodeVisitorSupportTest.groovy
+++ b/src/test/org/codehaus/groovy/ast/CodeVisitorSupportTest.groovy
@@ -56,7 +56,7 @@ public class CodeVisitorSupportTest extends GroovyTestCase {
         assert visitor.history[1] == IfStatement
         assert visitor.history[2] == BooleanExpression
         assert visitor.history[3] == BlockStatement
-        assert visitor.history[4] instanceof EmptyStatement
+        assert visitor.history[4] == EmptyStatement
         assert visitor.history.size == 5
     }
 
@@ -98,7 +98,7 @@ public class CodeVisitorSupportTest extends GroovyTestCase {
         assert visitor.history[2] == BlockStatement
         assert visitor.history[3] == CatchStatement
         assert visitor.history[4] == BlockStatement
-        assert visitor.history[5] instanceof EmptyStatement
+        assert visitor.history[5] == EmptyStatement
     }
 }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/89b5b072/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 055d05b..3fc0611 100644
--- a/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy
+++ b/src/test/org/codehaus/groovy/ast/builder/AstAssert.groovy
@@ -20,8 +20,6 @@ package org.codehaus.groovy.ast.builder
 
 import org.codehaus.groovy.ast.ASTNode
 import org.codehaus.groovy.ast.ClassNode
-import org.codehaus.groovy.ast.expr.EmptyExpression
-import org.codehaus.groovy.ast.stmt.EmptyStatement
 import org.junit.Assert
 import org.codehaus.groovy.ast.stmt.BlockStatement
 import org.codehaus.groovy.ast.stmt.ExpressionStatement
@@ -224,14 +222,9 @@ class AstAssert {
                 assertSyntaxTree([expected.expression], [actual.expression])
                 assertSyntaxTree([expected.code], [actual.code])
             },
-
             EmptyStatement : { expected, actual ->
                 // always successful
             },
-            ImmutableEmptyStatement : { expected, actual ->
-                // always successful
-            },
-
             BreakStatement : { expected, actual ->
                 Assert.assertEquals("Wrong label", expected.label, actual.label)
             },
@@ -382,25 +375,15 @@ class AstAssert {
         if (actual == null || expected == null || expected.size() != actual?.size()) {
             Assert.fail("AST comparison failure. \nExpected $expected \nReceived $actual")
         }
-
         expected.eachWithIndex { item, index ->
-            def actualNode = actual[index]
-
-            if (item.getClass().isArray() && actualNode.getClass().isArray()) {
-                assertSyntaxTree(item, actualNode)
+            if (item.getClass().isArray() && actual[index].getClass().isArray()) {
+                assertSyntaxTree(item, actual[index])
             } else {
-                try {
-                    Assert.assertEquals("Wrong type in AST Node", item.getClass(), actualNode.getClass())
-                } catch (AssertionError e) {
-                    if (!(item instanceof EmptyStatement && actualNode instanceof EmptyStatement)
-                        || !(item instanceof EmptyExpression && actualNode instanceof EmptyExpression)) {
-                        throw e;
-                    }
-                }
+                Assert.assertEquals("Wrong type in AST Node", item.getClass(), actual[index].getClass())
 
                 if (ASSERTION_MAP.containsKey(item.getClass().getSimpleName())) {
                     Closure assertion = ASSERTION_MAP.get(item.getClass().getSimpleName())
-                    assertion(item, actualNode)
+                    assertion(item, actual[index])
                 } else {
                     Assert.fail("Unexpected type: ${item.getClass()} Update the unit test!")
                 }