Skip to content

Commit bd2bb99

Browse files
committed
Minor refactoring
1 parent 82abcce commit bd2bb99

File tree

10 files changed

+590
-30
lines changed

10 files changed

+590
-30
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ The new parser(Parrot) can parse Groovy source code and construct the related AS
1010
Currently almost all features of Groovy are available. In addition, the following new features have been added:
1111

1212
* do-while loop(DONE)
13-
* new operators: identity operators(`===`, `!==`), elvis assignment(i.e. `?=`), `!in`, `!instanceof`(DONE)
1413
* lambda expression(DONE)
1514
* method reference and constructor reference(DONE)
1615
* try-with-resources(DONE)
16+
* default method(DONE)
17+
* new operators: identity operators(`===`, `!==`), elvis assignment(i.e. `?=`), `!in`, `!instanceof`(DONE)
1718
* safe index(e.g. nullableVar?[1, 2])(DONE)
1819
* groovydoc attached to AST node as metadata(DONE)
1920
* etc.

src/main/groovy-sources/org/codehaus/groovy/classgen/asm/BinaryExpressionHelper.java

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,24 @@
2121
import org.codehaus.groovy.GroovyBugError;
2222
import org.codehaus.groovy.ast.ClassHelper;
2323
import org.codehaus.groovy.ast.ClassNode;
24-
import org.codehaus.groovy.ast.expr.*;
24+
import org.codehaus.groovy.ast.expr.ArgumentListExpression;
25+
import org.codehaus.groovy.ast.expr.ArrayExpression;
26+
import org.codehaus.groovy.ast.expr.BinaryExpression;
27+
import org.codehaus.groovy.ast.expr.ClassExpression;
28+
import org.codehaus.groovy.ast.expr.ConstantExpression;
29+
import org.codehaus.groovy.ast.expr.ElvisOperatorExpression;
30+
import org.codehaus.groovy.ast.expr.EmptyExpression;
31+
import org.codehaus.groovy.ast.expr.Expression;
32+
import org.codehaus.groovy.ast.expr.FieldExpression;
33+
import org.codehaus.groovy.ast.expr.ListExpression;
34+
import org.codehaus.groovy.ast.expr.MethodCallExpression;
35+
import org.codehaus.groovy.ast.expr.NotExpression;
36+
import org.codehaus.groovy.ast.expr.PostfixExpression;
37+
import org.codehaus.groovy.ast.expr.PrefixExpression;
38+
import org.codehaus.groovy.ast.expr.PropertyExpression;
39+
import org.codehaus.groovy.ast.expr.TernaryExpression;
40+
import org.codehaus.groovy.ast.expr.TupleExpression;
41+
import org.codehaus.groovy.ast.expr.VariableExpression;
2542
import org.codehaus.groovy.ast.tools.WideningCategories;
2643
import org.codehaus.groovy.classgen.AsmClassGenerator;
2744
import org.codehaus.groovy.classgen.BytecodeExpression;
@@ -31,8 +48,57 @@
3148
import org.objectweb.asm.Label;
3249
import org.objectweb.asm.MethodVisitor;
3350

34-
import static org.codehaus.groovy.syntax.Types.*;
35-
import static org.objectweb.asm.Opcodes.*;
51+
import static org.codehaus.groovy.syntax.Types.BITWISE_AND;
52+
import static org.codehaus.groovy.syntax.Types.BITWISE_AND_EQUAL;
53+
import static org.codehaus.groovy.syntax.Types.BITWISE_OR;
54+
import static org.codehaus.groovy.syntax.Types.BITWISE_OR_EQUAL;
55+
import static org.codehaus.groovy.syntax.Types.BITWISE_XOR;
56+
import static org.codehaus.groovy.syntax.Types.BITWISE_XOR_EQUAL;
57+
import static org.codehaus.groovy.syntax.Types.COMPARE_EQUAL;
58+
import static org.codehaus.groovy.syntax.Types.COMPARE_GREATER_THAN;
59+
import static org.codehaus.groovy.syntax.Types.COMPARE_GREATER_THAN_EQUAL;
60+
import static org.codehaus.groovy.syntax.Types.COMPARE_IDENTICAL;
61+
import static org.codehaus.groovy.syntax.Types.COMPARE_LESS_THAN;
62+
import static org.codehaus.groovy.syntax.Types.COMPARE_LESS_THAN_EQUAL;
63+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_EQUAL;
64+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_IDENTICAL;
65+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_IN;
66+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_INSTANCEOF;
67+
import static org.codehaus.groovy.syntax.Types.COMPARE_TO;
68+
import static org.codehaus.groovy.syntax.Types.DIVIDE;
69+
import static org.codehaus.groovy.syntax.Types.DIVIDE_EQUAL;
70+
import static org.codehaus.groovy.syntax.Types.ELVIS_EQUAL;
71+
import static org.codehaus.groovy.syntax.Types.EQUAL;
72+
import static org.codehaus.groovy.syntax.Types.FIND_REGEX;
73+
import static org.codehaus.groovy.syntax.Types.INTDIV;
74+
import static org.codehaus.groovy.syntax.Types.INTDIV_EQUAL;
75+
import static org.codehaus.groovy.syntax.Types.KEYWORD_IN;
76+
import static org.codehaus.groovy.syntax.Types.KEYWORD_INSTANCEOF;
77+
import static org.codehaus.groovy.syntax.Types.LEFT_SHIFT;
78+
import static org.codehaus.groovy.syntax.Types.LEFT_SHIFT_EQUAL;
79+
import static org.codehaus.groovy.syntax.Types.LEFT_SQUARE_BRACKET;
80+
import static org.codehaus.groovy.syntax.Types.LOGICAL_AND;
81+
import static org.codehaus.groovy.syntax.Types.LOGICAL_OR;
82+
import static org.codehaus.groovy.syntax.Types.MATCH_REGEX;
83+
import static org.codehaus.groovy.syntax.Types.MINUS;
84+
import static org.codehaus.groovy.syntax.Types.MINUS_EQUAL;
85+
import static org.codehaus.groovy.syntax.Types.MOD;
86+
import static org.codehaus.groovy.syntax.Types.MOD_EQUAL;
87+
import static org.codehaus.groovy.syntax.Types.MULTIPLY;
88+
import static org.codehaus.groovy.syntax.Types.MULTIPLY_EQUAL;
89+
import static org.codehaus.groovy.syntax.Types.PLUS;
90+
import static org.codehaus.groovy.syntax.Types.PLUS_EQUAL;
91+
import static org.codehaus.groovy.syntax.Types.POWER;
92+
import static org.codehaus.groovy.syntax.Types.POWER_EQUAL;
93+
import static org.codehaus.groovy.syntax.Types.RIGHT_SHIFT;
94+
import static org.codehaus.groovy.syntax.Types.RIGHT_SHIFT_EQUAL;
95+
import static org.codehaus.groovy.syntax.Types.RIGHT_SHIFT_UNSIGNED;
96+
import static org.codehaus.groovy.syntax.Types.RIGHT_SHIFT_UNSIGNED_EQUAL;
97+
import static org.objectweb.asm.Opcodes.ACONST_NULL;
98+
import static org.objectweb.asm.Opcodes.GOTO;
99+
import static org.objectweb.asm.Opcodes.IFEQ;
100+
import static org.objectweb.asm.Opcodes.IFNE;
101+
import static org.objectweb.asm.Opcodes.INSTANCEOF;
36102

37103
public class BinaryExpressionHelper {
38104
//compare

src/main/groovy-sources/org/codehaus/groovy/syntax/Types.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@
2020

2121
import org.codehaus.groovy.GroovyBugError;
2222

23-
import java.util.*;
23+
import java.util.Collection;
24+
import java.util.Collections;
25+
import java.util.HashMap;
26+
import java.util.HashSet;
27+
import java.util.Iterator;
28+
import java.util.Map;
29+
import java.util.Set;
2430

2531

2632
/**

src/main/groovy-sources/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

Lines changed: 186 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,61 @@
2828
import groovy.transform.stc.ClosureSignatureConflictResolver;
2929
import groovy.transform.stc.ClosureSignatureHint;
3030
import org.codehaus.groovy.GroovyBugError;
31-
import org.codehaus.groovy.ast.*;
31+
import org.codehaus.groovy.ast.ASTNode;
32+
import org.codehaus.groovy.ast.AnnotatedNode;
33+
import org.codehaus.groovy.ast.AnnotationNode;
34+
import org.codehaus.groovy.ast.ClassCodeVisitorSupport;
3235
import org.codehaus.groovy.ast.ClassHelper;
33-
import org.codehaus.groovy.ast.expr.*;
34-
import org.codehaus.groovy.ast.stmt.*;
36+
import org.codehaus.groovy.ast.ClassNode;
37+
import org.codehaus.groovy.ast.ConstructorNode;
38+
import org.codehaus.groovy.ast.DynamicVariable;
39+
import org.codehaus.groovy.ast.FieldNode;
40+
import org.codehaus.groovy.ast.GenericsType;
41+
import org.codehaus.groovy.ast.InnerClassNode;
42+
import org.codehaus.groovy.ast.MethodNode;
43+
import org.codehaus.groovy.ast.Parameter;
44+
import org.codehaus.groovy.ast.PropertyNode;
45+
import org.codehaus.groovy.ast.Variable;
46+
import org.codehaus.groovy.ast.expr.ArgumentListExpression;
47+
import org.codehaus.groovy.ast.expr.AttributeExpression;
48+
import org.codehaus.groovy.ast.expr.BinaryExpression;
49+
import org.codehaus.groovy.ast.expr.BitwiseNegationExpression;
50+
import org.codehaus.groovy.ast.expr.CastExpression;
51+
import org.codehaus.groovy.ast.expr.ClassExpression;
52+
import org.codehaus.groovy.ast.expr.ClosureExpression;
53+
import org.codehaus.groovy.ast.expr.ClosureListExpression;
54+
import org.codehaus.groovy.ast.expr.ConstantExpression;
55+
import org.codehaus.groovy.ast.expr.ConstructorCallExpression;
56+
import org.codehaus.groovy.ast.expr.DeclarationExpression;
57+
import org.codehaus.groovy.ast.expr.EmptyExpression;
58+
import org.codehaus.groovy.ast.expr.Expression;
59+
import org.codehaus.groovy.ast.expr.FieldExpression;
60+
import org.codehaus.groovy.ast.expr.ListExpression;
61+
import org.codehaus.groovy.ast.expr.MapEntryExpression;
62+
import org.codehaus.groovy.ast.expr.MapExpression;
63+
import org.codehaus.groovy.ast.expr.MethodCall;
64+
import org.codehaus.groovy.ast.expr.MethodCallExpression;
65+
import org.codehaus.groovy.ast.expr.PostfixExpression;
66+
import org.codehaus.groovy.ast.expr.PrefixExpression;
67+
import org.codehaus.groovy.ast.expr.PropertyExpression;
68+
import org.codehaus.groovy.ast.expr.RangeExpression;
69+
import org.codehaus.groovy.ast.expr.SpreadExpression;
70+
import org.codehaus.groovy.ast.expr.StaticMethodCallExpression;
71+
import org.codehaus.groovy.ast.expr.TernaryExpression;
72+
import org.codehaus.groovy.ast.expr.TupleExpression;
73+
import org.codehaus.groovy.ast.expr.UnaryMinusExpression;
74+
import org.codehaus.groovy.ast.expr.UnaryPlusExpression;
75+
import org.codehaus.groovy.ast.expr.VariableExpression;
76+
import org.codehaus.groovy.ast.stmt.CaseStatement;
77+
import org.codehaus.groovy.ast.stmt.CatchStatement;
78+
import org.codehaus.groovy.ast.stmt.EmptyStatement;
79+
import org.codehaus.groovy.ast.stmt.ForStatement;
80+
import org.codehaus.groovy.ast.stmt.IfStatement;
81+
import org.codehaus.groovy.ast.stmt.ReturnStatement;
82+
import org.codehaus.groovy.ast.stmt.Statement;
83+
import org.codehaus.groovy.ast.stmt.SwitchStatement;
84+
import org.codehaus.groovy.ast.stmt.TryCatchStatement;
85+
import org.codehaus.groovy.ast.stmt.WhileStatement;
3586
import org.codehaus.groovy.ast.tools.GenericsUtils;
3687
import org.codehaus.groovy.ast.tools.WideningCategories;
3788
import org.codehaus.groovy.classgen.ReturnAdder;
@@ -51,14 +102,141 @@
51102
import org.objectweb.asm.Opcodes;
52103

53104
import java.lang.reflect.Modifier;
54-
import java.util.*;
105+
import java.util.ArrayList;
106+
import java.util.Arrays;
107+
import java.util.Collection;
108+
import java.util.Collections;
109+
import java.util.Enumeration;
110+
import java.util.HashMap;
111+
import java.util.HashSet;
112+
import java.util.Iterator;
113+
import java.util.LinkedHashMap;
114+
import java.util.LinkedHashSet;
115+
import java.util.LinkedList;
116+
import java.util.List;
117+
import java.util.Map;
118+
import java.util.Set;
55119
import java.util.concurrent.atomic.AtomicLong;
56120
import java.util.concurrent.atomic.AtomicReference;
57121

58-
import static org.codehaus.groovy.ast.ClassHelper.*;
59-
import static org.codehaus.groovy.ast.tools.WideningCategories.*;
60-
import static org.codehaus.groovy.syntax.Types.*;
61-
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.*;
122+
import static org.codehaus.groovy.ast.ClassHelper.BigDecimal_TYPE;
123+
import static org.codehaus.groovy.ast.ClassHelper.BigInteger_TYPE;
124+
import static org.codehaus.groovy.ast.ClassHelper.Boolean_TYPE;
125+
import static org.codehaus.groovy.ast.ClassHelper.Byte_TYPE;
126+
import static org.codehaus.groovy.ast.ClassHelper.CLASS_Type;
127+
import static org.codehaus.groovy.ast.ClassHelper.CLOSURE_TYPE;
128+
import static org.codehaus.groovy.ast.ClassHelper.Character_TYPE;
129+
import static org.codehaus.groovy.ast.ClassHelper.DYNAMIC_TYPE;
130+
import static org.codehaus.groovy.ast.ClassHelper.Double_TYPE;
131+
import static org.codehaus.groovy.ast.ClassHelper.Float_TYPE;
132+
import static org.codehaus.groovy.ast.ClassHelper.GROOVY_OBJECT_TYPE;
133+
import static org.codehaus.groovy.ast.ClassHelper.GSTRING_TYPE;
134+
import static org.codehaus.groovy.ast.ClassHelper.Integer_TYPE;
135+
import static org.codehaus.groovy.ast.ClassHelper.Iterator_TYPE;
136+
import static org.codehaus.groovy.ast.ClassHelper.LIST_TYPE;
137+
import static org.codehaus.groovy.ast.ClassHelper.Long_TYPE;
138+
import static org.codehaus.groovy.ast.ClassHelper.MAP_TYPE;
139+
import static org.codehaus.groovy.ast.ClassHelper.Number_TYPE;
140+
import static org.codehaus.groovy.ast.ClassHelper.OBJECT_TYPE;
141+
import static org.codehaus.groovy.ast.ClassHelper.PATTERN_TYPE;
142+
import static org.codehaus.groovy.ast.ClassHelper.RANGE_TYPE;
143+
import static org.codehaus.groovy.ast.ClassHelper.STRING_TYPE;
144+
import static org.codehaus.groovy.ast.ClassHelper.Short_TYPE;
145+
import static org.codehaus.groovy.ast.ClassHelper.VOID_TYPE;
146+
import static org.codehaus.groovy.ast.ClassHelper.boolean_TYPE;
147+
import static org.codehaus.groovy.ast.ClassHelper.byte_TYPE;
148+
import static org.codehaus.groovy.ast.ClassHelper.char_TYPE;
149+
import static org.codehaus.groovy.ast.ClassHelper.double_TYPE;
150+
import static org.codehaus.groovy.ast.ClassHelper.findSAM;
151+
import static org.codehaus.groovy.ast.ClassHelper.float_TYPE;
152+
import static org.codehaus.groovy.ast.ClassHelper.getNextSuperClass;
153+
import static org.codehaus.groovy.ast.ClassHelper.getUnwrapper;
154+
import static org.codehaus.groovy.ast.ClassHelper.getWrapper;
155+
import static org.codehaus.groovy.ast.ClassHelper.int_TYPE;
156+
import static org.codehaus.groovy.ast.ClassHelper.isNumberType;
157+
import static org.codehaus.groovy.ast.ClassHelper.isPrimitiveType;
158+
import static org.codehaus.groovy.ast.ClassHelper.isSAMType;
159+
import static org.codehaus.groovy.ast.ClassHelper.long_TYPE;
160+
import static org.codehaus.groovy.ast.ClassHelper.make;
161+
import static org.codehaus.groovy.ast.ClassHelper.short_TYPE;
162+
import static org.codehaus.groovy.ast.ClassHelper.void_WRAPPER_TYPE;
163+
import static org.codehaus.groovy.ast.tools.WideningCategories.LowestUpperBoundClassNode;
164+
import static org.codehaus.groovy.ast.tools.WideningCategories.isBigDecCategory;
165+
import static org.codehaus.groovy.ast.tools.WideningCategories.isBigIntCategory;
166+
import static org.codehaus.groovy.ast.tools.WideningCategories.isDouble;
167+
import static org.codehaus.groovy.ast.tools.WideningCategories.isDoubleCategory;
168+
import static org.codehaus.groovy.ast.tools.WideningCategories.isFloat;
169+
import static org.codehaus.groovy.ast.tools.WideningCategories.isFloatingCategory;
170+
import static org.codehaus.groovy.ast.tools.WideningCategories.isIntCategory;
171+
import static org.codehaus.groovy.ast.tools.WideningCategories.isLongCategory;
172+
import static org.codehaus.groovy.ast.tools.WideningCategories.isNumberCategory;
173+
import static org.codehaus.groovy.ast.tools.WideningCategories.lowestUpperBound;
174+
import static org.codehaus.groovy.syntax.Types.ASSIGN;
175+
import static org.codehaus.groovy.syntax.Types.ASSIGNMENT_OPERATOR;
176+
import static org.codehaus.groovy.syntax.Types.COMPARE_EQUAL;
177+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_EQUAL;
178+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_IN;
179+
import static org.codehaus.groovy.syntax.Types.COMPARE_NOT_INSTANCEOF;
180+
import static org.codehaus.groovy.syntax.Types.COMPARE_TO;
181+
import static org.codehaus.groovy.syntax.Types.DIVIDE;
182+
import static org.codehaus.groovy.syntax.Types.DIVIDE_EQUAL;
183+
import static org.codehaus.groovy.syntax.Types.ELVIS_EQUAL;
184+
import static org.codehaus.groovy.syntax.Types.EQUAL;
185+
import static org.codehaus.groovy.syntax.Types.FIND_REGEX;
186+
import static org.codehaus.groovy.syntax.Types.KEYWORD_IN;
187+
import static org.codehaus.groovy.syntax.Types.KEYWORD_INSTANCEOF;
188+
import static org.codehaus.groovy.syntax.Types.LEFT_SQUARE_BRACKET;
189+
import static org.codehaus.groovy.syntax.Types.MINUS_MINUS;
190+
import static org.codehaus.groovy.syntax.Types.MOD;
191+
import static org.codehaus.groovy.syntax.Types.MOD_EQUAL;
192+
import static org.codehaus.groovy.syntax.Types.PLUS_PLUS;
193+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.ArrayList_TYPE;
194+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.Collection_TYPE;
195+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.Matcher_TYPE;
196+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.UNKNOWN_PARAMETER_TYPE;
197+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.addMethodLevelDeclaredGenerics;
198+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.allParametersAndArgumentsMatch;
199+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsConnections;
200+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContext;
201+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.applyGenericsContextToParameterClass;
202+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.boundUnboundedWildcards;
203+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.checkCompatibleAssignmentTypes;
204+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.checkPossibleLooseOfPrecision;
205+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.chooseBestMethod;
206+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.evaluateExpression;
207+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.extractGenericsConnections;
208+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.extractGenericsParameterMapOfThis;
209+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findDGMMethodsByNameAndArguments;
210+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findSetters;
211+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findTargetVariable;
212+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.fullyResolveType;
213+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.getGenericsWithoutArray;
214+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.getOperationName;
215+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.implementsInterfaceOrIsSubclassOf;
216+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isArrayOp;
217+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isAssignableTo;
218+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isAssignment;
219+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isBeingCompiled;
220+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isBitOperator;
221+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isBoolIntrinsicOp;
222+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isClassClassNodeWrappingConcreteType;
223+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isCompareToBoolean;
224+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isOperationInGroup;
225+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isParameterizedWithGStringOrGStringString;
226+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isParameterizedWithString;
227+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isPowerOperator;
228+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isShiftOperation;
229+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isTraitSelf;
230+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isUsingGenericsOrIsArrayUsingGenerics;
231+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isVargs;
232+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.isWildcardLeftHandSide;
233+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.lastArgMatchesVarg;
234+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.missesGenericsTypes;
235+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.prettyPrintType;
236+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.resolveClassNodeGenerics;
237+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.toMethodParametersString;
238+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.typeCheckMethodArgumentWithGenerics;
239+
import static org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.typeCheckMethodsWithGenerics;
62240

63241
/**
64242
* The main class code visitor responsible for static type checking. It will perform various inspections like checking

src/main/java/org/apache/groovy/parser/antlr4/AbstractParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
*/
1919
package org.apache.groovy.parser.antlr4;
2020

21-
import org.antlr.v4.runtime.TokenStream;
2221
import org.antlr.v4.runtime.Parser;
22+
import org.antlr.v4.runtime.TokenStream;
2323

2424
/**
2525
* Because antlr4 does not support generating parser with specified interface,

0 commit comments

Comments
 (0)