public class StaticCompilationVisitor extends StaticTypeCheckingVisitor
StaticTypeCheckingVisitor.SignatureCodecFactory, StaticTypeCheckingVisitor.VariableExpressionTypeMemoizer| Modifier and Type | Field and Description |
|---|---|
static MethodNode |
ARRAYLIST_ADD_METHOD |
static ClassNode |
ARRAYLIST_CLASSNODE |
static MethodNode |
ARRAYLIST_CONSTRUCTOR |
CLOSURE_CALL_NO_ARG, CLOSURE_CALL_ONE_ARG, CLOSURE_CALL_VARGS, CLOSUREPARAMS_CLASSNODE, CURRENT_SIGNATURE_PROTOCOL, CURRENT_SIGNATURE_PROTOCOL_VERSION, DELEGATES_TO, DELEGATES_TO_TARGET, DGM_CLASSNODE, EMPTY_METHODNODE_LIST, ENUMERATION_TYPE, ERROR_COLLECTOR, extension, GENERATED_EMPTY_STATEMENT, GET_DELEGATE, GET_OWNER, GET_THISOBJECT, ITERABLE_TYPE, LINKEDHASHMAP_CLASSNODE, MAP_ENTRY_TYPE, returnAdder, returnListener, TYPECHECKING_ANNOTATIONS, TYPECHECKING_INFO_NODE, typeCheckingContext| Constructor and Description |
|---|
StaticCompilationVisitor(SourceUnit unit,
ClassNode node) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
existsProperty(PropertyExpression pexp,
boolean checkForReadOnly,
ClassCodeVisitorSupport visitor)
Checks whether a property exists on the receiver, or on any of the possible receiver classes (found in the
temporary type information table)
|
protected MethodNode |
findMethodOrFail(Expression expr,
ClassNode receiver,
String name,
ClassNode... args) |
protected ClassNode[] |
getTypeCheckingAnnotations()
Returns the list of type checking annotations class nodes.
|
static boolean |
isStaticallyCompiled(AnnotatedNode node) |
void |
visitClass(ClassNode node)
Visit a ClassNode.
|
void |
visitConstructorCallExpression(ConstructorCallExpression call) |
void |
visitForLoop(ForStatement forLoop) |
void |
visitMethod(MethodNode node)
Visit a MethodNode.
|
void |
visitMethodCallExpression(MethodCallExpression call) |
void |
visitPropertyExpression(PropertyExpression pexp) |
void |
visitSpreadExpression(SpreadExpression expression) |
addAmbiguousErrorMessage, addAssignmentError, addCategoryMethodCallError, addClosureReturnType, addError, addNoMatchingMethodError, addReceivers, addStaticTypeError, addTypeCheckingExtension, addTypeCheckingInfoAnnotation, addUnsupportedPreOrPostfixExpressionError, areCategoryMethodCalls, checkCast, checkClosureParameters, checkForbiddenSpreadArgument, checkGroovyConstructorMap, checkGroovyStyleConstructor, checkGroovyStyleConstructor, checkReturnType, collectAllInterfaceMethodsByName, existsProperty, extractPropertyNameFromMethodName, extractTemporaryTypeInfoKey, extractTypesFromParameters, findCurrentInstanceOfClass, findMethod, findMethodsWithGenerated, formatArgumentList, getArgumentTypes, getDelegationMetadata, getGroupOperationResultType, getInferredReturnType, getInferredReturnTypeFromWithClosureArgument, getOriginalDeclarationType, getResultType, getSourceUnit, getTemporaryTypesForExpression, getType, getTypeCheckingContext, hasRHSIncompleteGenericTypeInfo, hasSetter, inferClosureParameterTypes, inferComponentType, inferDiamondType, inferListExpressionType, inferLoopElementType, inferMapExpressionType, inferReturnTypeGenerics, inferReturnTypeGenerics, initialize, isClassInnerClassOrEqualTo, isClosureCall, isNullConstant, isSecondPassNeededForControlStructure, isSkipMode, isSkippedInnerClass, makeOwnerList, performSecondPass, popAssignmentTracking, prettyPrintMethodList, pushAssignmentTracking, pushInstanceOfTypeInfo, restoreVariableExpressionMetadata, saveVariableExpressionMetadata, setCompilationUnit, setMethodsToBeVisited, shouldSkipClassNode, shouldSkipMethodNode, silentlyVisitMethodNode, startMethodInference, storeInferredReturnType, storeInferredTypeForPropertyExpression, storeTargetMethod, storeType, typeCheckAssignment, typeCheckClosureCall, typeCheckMapConstructor, typeCheckMethodsWithGenericsOrFail, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitCaseStatement, visitCastExpression, visitClassExpression, visitClosureExpression, visitConstructor, visitConstructorOrMethod, visitField, visitIfElse, visitMethodCallArguments, visitPostfixExpression, visitPrefixExpression, visitProperty, visitRangeExpression, visitReturnStatement, visitStaticMethodCallExpression, visitSwitch, visitTernaryExpression, visitTryCatchFinally, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop, wrapTypeIfNecessaryvisitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitClassCodeContainer, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitImports, visitObjectInitializerStatements, visitPackage, visitStatement, visitSynchronizedStatement, visitThrowStatementvisitArgumentlistExpression, visitArrayExpression, visitBooleanExpression, visitBytecodeExpression, visitClosureListExpression, visitConstantExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitShortTernaryExpression, visitSpreadMapExpression, visitTupleExpressionpublic static final ClassNode ARRAYLIST_CLASSNODE
public static final MethodNode ARRAYLIST_CONSTRUCTOR
public static final MethodNode ARRAYLIST_ADD_METHOD
public StaticCompilationVisitor(SourceUnit unit, ClassNode node)
protected ClassNode[] getTypeCheckingAnnotations()
StaticTypeCheckingVisitor
The default implementation returns TypeChecked.
getTypeCheckingAnnotations in class StaticTypeCheckingVisitorpublic static boolean isStaticallyCompiled(AnnotatedNode node)
public void visitClass(ClassNode node)
GroovyClassVisitorvisitClass in interface GroovyClassVisitorvisitClass in class StaticTypeCheckingVisitorpublic void visitMethod(MethodNode node)
GroovyClassVisitorvisitMethod in interface GroovyClassVisitorvisitMethod in class StaticTypeCheckingVisitorpublic void visitSpreadExpression(SpreadExpression expression)
visitSpreadExpression in interface GroovyCodeVisitorvisitSpreadExpression in class CodeVisitorSupportpublic void visitMethodCallExpression(MethodCallExpression call)
visitMethodCallExpression in interface GroovyCodeVisitorvisitMethodCallExpression in class StaticTypeCheckingVisitorpublic void visitConstructorCallExpression(ConstructorCallExpression call)
visitConstructorCallExpression in interface GroovyCodeVisitorvisitConstructorCallExpression in class StaticTypeCheckingVisitorpublic void visitForLoop(ForStatement forLoop)
visitForLoop in interface GroovyCodeVisitorvisitForLoop in class StaticTypeCheckingVisitorprotected MethodNode findMethodOrFail(Expression expr, ClassNode receiver, String name, ClassNode... args)
findMethodOrFail in class StaticTypeCheckingVisitorprotected boolean existsProperty(PropertyExpression pexp, boolean checkForReadOnly, ClassCodeVisitorSupport visitor)
StaticTypeCheckingVisitorexistsProperty in class StaticTypeCheckingVisitorpexp - a property expressioncheckForReadOnly - if true, look for property read, else for property setvisitor - if not null, when the property node is found, visit it with the provided visitorpublic void visitPropertyExpression(PropertyExpression pexp)
visitPropertyExpression in interface GroovyCodeVisitorvisitPropertyExpression in class StaticTypeCheckingVisitor