- org.codehaus.groovy.transform.sc.StaticCompilationVisitor
-
This visitor is responsible for amending the AST with static compilation metadata or transform the AST so that
a class or a method can be statically compiled. It may also throw errors specific to static compilation which
are not considered as an error at the type check pass. For example, usage of spread operator is not allowed
in statically compiled portions of code, while it may be statically checked.
Static compilation relies on static type checking, which explains why this visitor extends the type checker
visitor.
- Authors:
- Cedric Champeau
-
-
Field Summary
-
Inherited fields
| Fields inherited from class |
Fields |
class StaticTypeCheckingVisitor |
CLOSUREPARAMS_CLASSNODE, CLOSURE_CALL_NO_ARG, CLOSURE_CALL_ONE_ARG, CLOSURE_CALL_VARGS, CURRENT_SIGNATURE_PROTOCOL, CURRENT_SIGNATURE_PROTOCOL_VERSION, DELEGATES_TO, DELEGATES_TO_TARGET, DGM_CLASSNODE, EMPTY_METHODNODE_LIST, ERROR_COLLECTOR, GENERATED_EMPTY_STATEMENT, GET_DELEGATE, GET_OWNER, GET_THISOBJECT, ITERABLE_TYPE, LINKEDHASHMAP_CLASSNODE, TYPECHECKED_CLASSNODE, TYPECHECKING_ANNOTATIONS, TYPECHECKING_INFO_NODE, extension, returnAdder, returnListener, typeCheckingContext |
-
Methods Summary
-
Inherited Methods Summary
Inherited Methods
| Methods inherited from class |
Name |
class StaticTypeCheckingVisitor |
addAmbiguousErrorMessage, addAssignmentError, addCategoryMethodCallError, addClosureReturnType, addError, addNoMatchingMethodError, addReceivers, addStaticTypeError, addTypeCheckingExtension, addTypeCheckingInfoAnnotation, addUnsupportedPreOrPostfixExpressionError, areCategoryMethodCalls, checkCast, checkClosureParameters, checkForbiddenSpreadArgument, checkGroovyConstructorMap, checkGroovyStyleConstructor, checkGroovyStyleConstructor, checkReturnType, collectAllInterfaceMethodsByName, existsProperty, existsProperty, extractPropertyNameFromMethodName, extractTemporaryTypeInfoKey, extractTypesFromParameters, findCurrentInstanceOfClass, findMethod, findMethodOrFail, findMethodsWithGenerated, formatArgumentList, getArgumentTypes, getDelegationMetadata, getGroupOperationResultType, getInferredReturnType, getInferredReturnTypeFromWithClosureArgument, getOriginalDeclarationType, getResultType, getSourceUnit, getTemporaryTypesForExpression, getType, getTypeCheckingAnnotations, getTypeCheckingContext, hasRHSIncompleteGenericTypeInfo, hasSetter, inferClosureParameterTypes, inferComponentType, inferDiamondType, inferListExpressionType, inferLoopElementType, inferMapExpressionType, 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, visitClass, visitClassExpression, visitClosureExpression, visitConstructorCallExpression, visitConstructorOrMethod, visitField, visitForLoop, visitIfElse, visitMethod, visitMethodCallArguments, visitMethodCallExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitStaticMethodCallExpression, visitSwitch, visitTernaryExpression, visitTryCatchFinally, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop, wrapTypeIfNecessary |
class ClassCodeVisitorSupport |
visitMethod, visitField, visitReturnStatement, visitProperty, visitConstructor, visitExpressionStatement, visitBlockStatement, visitDoWhileLoop, visitPackage, visitForLoop, visitSwitch, visitWhileLoop, visitClass, visitCatchStatement, visitAssertStatement, visitIfElse, visitCaseStatement, visitSynchronizedStatement, visitThrowStatement, visitDeclarationExpression, visitImports, visitBreakStatement, visitContinueStatement, visitTryCatchFinally, visitAnnotations, visitListExpression, visitClassExpression, visitPropertyExpression, visitConstantExpression, visitVariableExpression, visitTupleExpression, visitArgumentlistExpression, visitStaticMethodCallExpression, visitMethodCallExpression, visitConstructorCallExpression, visitBinaryExpression, visitTernaryExpression, visitShortTernaryExpression, visitPostfixExpression, visitPrefixExpression, visitBooleanExpression, visitNotExpression, visitClosureExpression, visitArrayExpression, visitMapExpression, visitMapEntryExpression, visitRangeExpression, visitSpreadExpression, visitSpreadMapExpression, visitMethodPointerExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitBitwiseNegationExpression, visitCastExpression, visitAttributeExpression, visitFieldExpression, visitGStringExpression, visitClosureListExpression, visitBytecodeExpression, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
-
-
Field Detail
-
public static final MethodNode ARRAYLIST_ADD_METHOD
-
public static final ClassNode ARRAYLIST_CLASSNODE
-
public static final MethodNode ARRAYLIST_CONSTRUCTOR
-
Method Detail
-
@Overrideif (!(collectionExpression instanceof ClosureListExpression)) {
public void visitForLoop(ForStatement forLoop)
Copyright © 2003-2014 The Codehaus. All rights reserved.