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/09/16 18:43:36 UTC
groovy git commit: Replace Pair with Tuple2
Repository: groovy
Updated Branches:
refs/heads/master 56b0d4a7d -> 7dc7cb52b
Replace Pair with Tuple2
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/7dc7cb52
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/7dc7cb52
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/7dc7cb52
Branch: refs/heads/master
Commit: 7dc7cb52b7d5692df085c5ba737eee4dce59cb23
Parents: 56b0d4a
Author: sunlan <su...@apache.org>
Authored: Sun Sep 17 02:43:26 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sun Sep 17 02:43:26 2017 +0800
----------------------------------------------------------------------
.../apache/groovy/parser/antlr4/AstBuilder.java | 69 ++++++++++----------
.../groovy/parser/antlr4/GroovydocManager.java | 2 +-
.../groovy/parser/antlr4/ModifierManager.java | 1 -
.../groovy/parser/antlr4/ModifierNode.java | 2 -
.../org/apache/groovy/parser/antlr4/Pair.java | 68 -------------------
5 files changed, 36 insertions(+), 106 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/7dc7cb52/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 01f4213..e228a4d 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -19,6 +19,7 @@
package org.apache.groovy.parser.antlr4;
import groovy.lang.IntRange;
+import groovy.lang.Tuple2;
import org.antlr.v4.runtime.ANTLRErrorListener;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CharStreams;
@@ -274,7 +275,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
this.configureScriptClassNode();
if (null != this.numberFormatError) {
- throw createParsingFailedException(this.numberFormatError.getValue().getMessage(), this.numberFormatError.getKey());
+ throw createParsingFailedException(this.numberFormatError.getSecond().getMessage(), this.numberFormatError.getFirst());
}
return moduleNode;
@@ -413,17 +414,17 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
@Override
public ForStatement visitForStmtAlt(ForStmtAltContext ctx) {
- Pair<Parameter, Expression> controlPair = this.visitForControl(ctx.forControl());
+ Tuple2<Parameter, Expression> controlTuple = this.visitForControl(ctx.forControl());
Statement loopBlock = this.unpackStatement((Statement) this.visit(ctx.statement()));
return configureAST(
- new ForStatement(controlPair.getKey(), controlPair.getValue(), asBoolean(loopBlock) ? loopBlock : EmptyStatement.INSTANCE),
+ new ForStatement(controlTuple.getFirst(), controlTuple.getSecond(), asBoolean(loopBlock) ? loopBlock : EmptyStatement.INSTANCE),
ctx);
}
@Override
- public Pair<Parameter, Expression> visitForControl(ForControlContext ctx) {
+ public Tuple2<Parameter, Expression> visitForControl(ForControlContext ctx) {
if (asBoolean(ctx.enhancedForControl())) { // e.g. for(int i in 0..<10) {}
return this.visitEnhancedForControl(ctx.enhancedForControl());
}
@@ -479,7 +480,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
}
@Override
- public Pair<Parameter, Expression> visitEnhancedForControl(EnhancedForControlContext ctx) {
+ public Tuple2<Parameter, Expression> visitEnhancedForControl(EnhancedForControlContext ctx) {
Parameter parameter = configureAST(
new Parameter(this.visitType(ctx.type()), this.visitVariableDeclaratorId(ctx.variableDeclaratorId()).getName()),
ctx.variableDeclaratorId());
@@ -487,18 +488,18 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
// FIXME Groovy will ignore variableModifier of parameter in the for control
// In order to make the new parser behave same with the old one, we do not process variableModifier*
- return new Pair<>(parameter, (Expression) this.visit(ctx.expression()));
+ return new Tuple2<>(parameter, (Expression) this.visit(ctx.expression()));
}
@Override
- public Pair<Parameter, Expression> visitClassicalForControl(ClassicalForControlContext ctx) {
+ public Tuple2<Parameter, Expression> visitClassicalForControl(ClassicalForControlContext ctx) {
ClosureListExpression closureListExpression = new ClosureListExpression();
closureListExpression.addExpression(this.visitForInit(ctx.forInit()));
closureListExpression.addExpression(asBoolean(ctx.expression()) ? (Expression) this.visit(ctx.expression()) : EmptyExpression.INSTANCE);
closureListExpression.addExpression(this.visitForUpdate(ctx.forUpdate()));
- return new Pair<>(ForStatement.FOR_LOOP_DUMMY, closureListExpression);
+ return new Tuple2<>(ForStatement.FOR_LOOP_DUMMY, closureListExpression);
}
@Override
@@ -711,20 +712,20 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
.map(e -> (Object) this.visitSwitchLabel(e))
.reduce(new ArrayList<Statement>(4), (r, e) -> {
List<Statement> statementList = (List<Statement>) r;
- Pair<Token, Expression> pair = (Pair<Token, Expression>) e;
+ Tuple2<Token, Expression> tuple = (Tuple2<Token, Expression>) e;
boolean isLast = labelCnt - 1 == statementList.size();
- switch (pair.getKey().getType()) {
+ switch (tuple.getFirst().getType()) {
case CASE: {
if (!asBoolean(statementList)) {
- firstLabelHolder.add(pair.getKey());
+ firstLabelHolder.add(tuple.getFirst());
}
statementList.add(
configureAST(
new CaseStatement(
- pair.getValue(),
+ tuple.getSecond(),
// check whether processing the last label. if yes, block statement should be attached.
isLast ? this.visitBlockStatements(ctx.blockStatements())
@@ -740,7 +741,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
blockStatement.putNodeMetaData(IS_SWITCH_DEFAULT, true);
statementList.add(
- // this.configureAST(blockStatement, pair.getKey())
+ // this.configureAST(blockStatement, tuple.getKey())
blockStatement
);
@@ -754,11 +755,11 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
}
@Override
- public Pair<Token, Expression> visitSwitchLabel(SwitchLabelContext ctx) {
+ public Tuple2<Token, Expression> visitSwitchLabel(SwitchLabelContext ctx) {
if (asBoolean(ctx.CASE())) {
- return new Pair<>(ctx.CASE().getSymbol(), (Expression) this.visit(ctx.expression()));
+ return new Tuple2<>(ctx.CASE().getSymbol(), (Expression) this.visit(ctx.expression()));
} else if (asBoolean(ctx.DEFAULT())) {
- return new Pair<>(ctx.DEFAULT().getSymbol(), EmptyExpression.INSTANCE);
+ return new Tuple2<>(ctx.DEFAULT().getSymbol(), EmptyExpression.INSTANCE);
}
throw createParsingFailedException("Unsupported switch label: " + ctx.getText(), ctx);
@@ -2000,10 +2001,10 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
}
if (asBoolean(ctx.indexPropertyArgs())) { // e.g. list[1, 3, 5]
- Pair<Token, Expression> pair = this.visitIndexPropertyArgs(ctx.indexPropertyArgs());
+ Tuple2<Token, Expression> tuple = this.visitIndexPropertyArgs(ctx.indexPropertyArgs());
return configureAST(
- new BinaryExpression(baseExpr, createGroovyToken(pair.getKey()), pair.getValue(), asBoolean(ctx.indexPropertyArgs().QUESTION())),
+ new BinaryExpression(baseExpr, createGroovyToken(tuple.getFirst()), tuple.getSecond(), asBoolean(ctx.indexPropertyArgs().QUESTION())),
ctx);
}
@@ -2382,7 +2383,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
}
@Override
- public Pair<Token, Expression> visitIndexPropertyArgs(IndexPropertyArgsContext ctx) {
+ public Tuple2<Token, Expression> visitIndexPropertyArgs(IndexPropertyArgsContext ctx) {
List<Expression> expressionList = this.visitExpressionList(ctx.expressionList());
@@ -2399,14 +2400,14 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
indexExpr = expr;
}
- return new Pair<>(ctx.LBRACK().getSymbol(), indexExpr);
+ return new Tuple2<>(ctx.LBRACK().getSymbol(), indexExpr);
}
// e.g. a[1, 2]
ListExpression listExpression = new ListExpression(expressionList);
listExpression.setWrapped(true);
- return new Pair<>(ctx.LBRACK().getSymbol(), configureAST(listExpression, ctx));
+ return new Tuple2<>(ctx.LBRACK().getSymbol(), configureAST(listExpression, ctx));
}
@Override
@@ -3124,7 +3125,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
try {
num = Numbers.parseInteger(null, text);
} catch (Exception e) {
- this.numberFormatError = new Pair<>(ctx, e);
+ this.numberFormatError = new Tuple2<>(ctx, e);
}
ConstantExpression constantExpression = new ConstantExpression(num, !text.startsWith(SUB_STR));
@@ -3142,7 +3143,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
try {
num = Numbers.parseDecimal(text);
} catch (Exception e) {
- this.numberFormatError = new Pair<>(ctx, e);
+ this.numberFormatError = new Tuple2<>(ctx, e);
}
ConstantExpression constantExpression = new ConstantExpression(num, !text.startsWith(SUB_STR));
@@ -3740,25 +3741,25 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
public AnnotationNode visitAnnotation(AnnotationContext ctx) {
String annotationName = this.visitAnnotationName(ctx.annotationName());
AnnotationNode annotationNode = new AnnotationNode(ClassHelper.make(annotationName));
- List<Pair<String, Expression>> annotationElementValues = this.visitElementValues(ctx.elementValues());
+ List<Tuple2<String, Expression>> annotationElementValues = this.visitElementValues(ctx.elementValues());
- annotationElementValues.forEach(e -> annotationNode.addMember(e.getKey(), e.getValue()));
+ annotationElementValues.forEach(e -> annotationNode.addMember(e.getFirst(), e.getSecond()));
return configureAST(annotationNode, ctx);
}
@Override
- public List<Pair<String, Expression>> visitElementValues(ElementValuesContext ctx) {
+ public List<Tuple2<String, Expression>> visitElementValues(ElementValuesContext ctx) {
if (!asBoolean(ctx)) {
return Collections.emptyList();
}
- List<Pair<String, Expression>> annotationElementValues = new LinkedList<>();
+ List<Tuple2<String, Expression>> annotationElementValues = new LinkedList<>();
if (asBoolean(ctx.elementValuePairs())) {
- this.visitElementValuePairs(ctx.elementValuePairs()).forEach((key, value) -> annotationElementValues.add(new Pair<>(key, value)));
+ this.visitElementValuePairs(ctx.elementValuePairs()).forEach((key, value) -> annotationElementValues.add(new Tuple2<>(key, value)));
} else if (asBoolean(ctx.elementValue())) {
- annotationElementValues.add(new Pair<>(VALUE_STR, this.visitElementValue(ctx.elementValue())));
+ annotationElementValues.add(new Tuple2<>(VALUE_STR, this.visitElementValue(ctx.elementValue())));
}
return annotationElementValues;
@@ -3775,8 +3776,8 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
return ctx.elementValuePair().stream()
.map(this::visitElementValuePair)
.collect(Collectors.toMap(
- Pair::getKey,
- Pair::getValue,
+ Tuple2::getFirst,
+ Tuple2::getSecond,
(k, v) -> {
throw new IllegalStateException(String.format("Duplicate key %s", k));
},
@@ -3785,8 +3786,8 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
}
@Override
- public Pair<String, Expression> visitElementValuePair(ElementValuePairContext ctx) {
- return new Pair<>(ctx.elementValuePairName().getText(), this.visitElementValue(ctx.elementValue()));
+ public Tuple2<String, Expression> visitElementValuePair(ElementValuePairContext ctx) {
+ return new Tuple2<>(ctx.elementValuePairName().getText(), this.visitElementValue(ctx.elementValue()));
}
@Override
@@ -4377,7 +4378,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
private final Deque<List<InnerClassNode>> anonymousInnerClassesDefinedInMethodStack = new ArrayDeque<>();
private int anonymousInnerClassCounter = 1;
- private Pair<GroovyParserRuleContext, Exception> numberFormatError;
+ private Tuple2<GroovyParserRuleContext, Exception> numberFormatError;
private static final String QUESTION_STR = "?";
private static final String DOT_STR = ".";
http://git-wip-us.apache.org/repos/asf/groovy/blob/7dc7cb52/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
index f93549b..daac5bd 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
@@ -19,6 +19,7 @@
package org.apache.groovy.parser.antlr4;
import groovy.lang.Groovydoc;
+import groovy.lang.groovydoc.GroovydocHolder;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.TerminalNode;
@@ -28,7 +29,6 @@ import org.codehaus.groovy.ast.AnnotatedNode;
import org.codehaus.groovy.ast.AnnotationNode;
import org.codehaus.groovy.ast.ClassHelper;
import org.codehaus.groovy.ast.expr.ConstantExpression;
-import groovy.lang.groovydoc.GroovydocHolder;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/groovy/blob/7dc7cb52/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierManager.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierManager.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierManager.java
index 2bbcc01..808a416 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierManager.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierManager.java
@@ -29,7 +29,6 @@ import org.objectweb.asm.Opcodes;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
http://git-wip-us.apache.org/repos/asf/groovy/blob/7dc7cb52/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierNode.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierNode.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierNode.java
index 65a2f31..f2b92a6 100644
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierNode.java
+++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/ModifierNode.java
@@ -23,8 +23,6 @@ import org.codehaus.groovy.ast.ASTNode;
import org.codehaus.groovy.ast.AnnotationNode;
import org.objectweb.asm.Opcodes;
-import java.util.Collections;
-import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
http://git-wip-us.apache.org/repos/asf/groovy/blob/7dc7cb52/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Pair.java
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Pair.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Pair.java
deleted file mode 100644
index 14500be..0000000
--- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Pair.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.groovy.parser.antlr4;
-
-import java.util.Objects;
-
-/**
- * key and value pair
- *
- * @param <K> key type
- * @param <V> value type
- */
-public class Pair<K, V> {
- private K key;
- private V value;
-
- public Pair(K key, V value) {
- this.key = key;
- this.value = value;
- }
-
- public K getKey() {
- return key;
- }
-
- public void setKey(K key) {
- this.key = key;
- }
-
- public V getValue() {
- return value;
- }
-
- public void setValue(V value) {
- this.value = value;
- }
-
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Pair<?, ?> pair = (Pair<?, ?>) o;
- return Objects.equals(key, pair.key) &&
- Objects.equals(value, pair.value);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(key, value);
- }
-}
\ No newline at end of file