- 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.
-
-
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, ENUMERATION_TYPE, ERROR_COLLECTOR, GENERATED_EMPTY_STATEMENT, GET_DELEGATE, GET_OWNER, GET_THISOBJECT, ITERABLE_TYPE, LINKEDHASHMAP_CLASSNODE, MAP_ENTRY_TYPE, NAMED_PARAMS_CLASSNODE, TYPECHECKED_CLASSNODE, TYPECHECKING_ANNOTATIONS, TYPECHECKING_INFO_NODE, currentField, currentProperty, 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, afterSwitchConditionExpressionVisited, areCategoryMethodCalls, checkCast, checkClosureParameters, checkForbiddenSpreadArgument, checkGroovyConstructorMap, checkGroovyStyleConstructor, checkGroovyStyleConstructor, checkReturnType, collectAllInterfaceMethodsByName, existsProperty, existsProperty, extractPropertyNameFromMethodName, extractTemporaryTypeInfoKey, extractTypesFromParameters, findCurrentInstanceOfClass, findInstanceOfNotReturnExpression, findMethod, findMethodOrFail, findMethodsWithGenerated, findNotInstanceOfReturnExpression, formatArgumentList, getArgumentTypes, getDelegationMetadata, getGroupOperationResultType, getInferredReturnType, getInferredReturnTypeFromWithClosureArgument, getOriginalDeclarationType, getResultType, getSourceUnit, getTemporaryTypesForExpression, getType, getTypeCheckingAnnotations, getTypeCheckingContext, hasRHSIncompleteGenericTypeInfo, inferClosureParameterTypes, inferComponentType, inferDiamondType, inferListExpressionType, inferLoopElementType, inferMapExpressionType, inferReturnTypeGenerics, inferReturnTypeGenerics, initialize, isClassInnerClassOrEqualTo, isClosureCall, isNullConstant, isSecondPassNeededForControlStructure, isSkipMode, isSkippedInnerClass, isSuperExpression, isThisExpression, makeOwnerList, performSecondPass, popAssignmentTracking, prettyPrintMethodList, pushAssignmentTracking, pushInstanceOfTypeInfo, restoreVariableExpressionMetadata, returnStatementAdded, saveVariableExpressionMetadata, setCompilationUnit, setMethodsToBeVisited, shouldSkipClassNode, shouldSkipMethodNode, silentlyVisitMethodNode, startMethodInference, storeInferredReturnType, storeInferredTypeForPropertyExpression, storeTargetMethod, storeType, typeCheckAssignment, typeCheckClosureCall, typeCheckMapConstructor, typeCheckMethodsWithGenericsOrFail, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitCaseStatement, visitCastExpression, visitClass, visitClassExpression, visitClosingBlock, visitClosureExpression, visitConstructor, visitConstructorCallExpression, visitConstructorOrMethod, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitInstanceofNot, visitMethod, visitMethodCallArguments, visitMethodCallExpression, visitPostfixExpression, visitPrefixExpression, visitProperty, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitStaticMethodCallExpression, visitSwitch, visitTernaryExpression, visitTryCatchFinally, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop, wrapTypeIfNecessary |
class ClassCodeVisitorSupport |
addError, getSourceUnit, visitAnnotation, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop |
class CodeVisitorSupport |
afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop |
-
-
Field Detail
-
public static final MethodNode ARRAYLIST_ADD_METHOD
-
public static final ClassNode ARRAYLIST_CLASSNODE
-
public static final MethodNode ARRAYLIST_CONSTRUCTOR
-
public static final ClassNode COMPILESTATIC_CLASSNODE
-
public static final ClassNode TYPECHECKED_CLASSNODE
-
Method Detail
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
protected SourceUnit getSourceUnit()
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
protected ClassNode[] getTypeCheckingAnnotations()
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitClass(ClassNode node)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitConstructorCallExpression(ConstructorCallExpression call)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitField(FieldNode node)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitForLoop(ForStatement statement)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitMethod(MethodNode node)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitMethod(MethodNode node)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitMethodCallExpression(MethodCallExpression call)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitProperty(PropertyNode node)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitPropertyExpression(PropertyExpression expression)
-
@com.github.javaparser.ast.expr.MarkerAnnotationExprOverride
public void visitSpreadExpression(SpreadExpression expression)
Copyright © 2003-2020 The Apache Software Foundation. All rights reserved.