Make EmptyExpression.INSTANCE immutable further (cherry picked from commit 9e15bed)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/60be70ae Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/60be70ae Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/60be70ae Branch: refs/heads/GROOVY_2_6_X Commit: 60be70ae1946e6cbcca96444d50772014b9a9206 Parents: ba3ad3a Author: sunlan <sun...@apache.org> Authored: Sat Jun 24 16:10:56 2017 +0800 Committer: sunlan <sun...@apache.org> Committed: Sat Jun 24 16:41:01 2017 +0800 ---------------------------------------------------------------------- .../groovy/ast/expr/EmptyExpression.java | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/60be70ae/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 6c3daf1..7b6d9e7 100644 --- a/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java +++ b/src/main/org/codehaus/groovy/ast/expr/EmptyExpression.java @@ -18,11 +18,14 @@ */ 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. @@ -65,6 +68,56 @@ public class EmptyExpression extends Expression { 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"); }