Methods
| Type |
Name and description |
protected void |
addAmbiguousErrorMessage(List foundMethods, String name, ClassNode[] args, Expression expr)
|
protected void |
addAssignmentError(ClassNode leftType, ClassNode rightType, Expression assignmentExpression)
|
protected void |
addCategoryMethodCallError(Expression call)
|
protected void |
addClosureReturnType(ClassNode returnType)
|
protected void |
addError(String msg, ASTNode expr)
|
protected void |
addNoMatchingMethodError(ClassNode receiver, String name, ClassNode[] args, Expression call)
|
protected void |
addReceivers(List receivers, Collection owners, boolean implicitThis)
|
protected void |
addStaticTypeError(String msg, ASTNode expr)
|
void |
addTypeCheckingExtension(TypeCheckingExtension extension)
|
protected void |
addTypeCheckingInfoAnnotation(MethodNode node)
|
protected void |
addUnsupportedPreOrPostfixExpressionError(Expression expression)
|
protected boolean |
areCategoryMethodCalls(List foundMethods, String name, ClassNode[] args)
|
protected boolean |
checkCast(ClassNode targetType, Expression source)
|
protected void |
checkClosureParameters(Expression callArguments, ClassNode receiver) visit a method call target, to infer the type. |
protected void |
checkForbiddenSpreadArgument(ArgumentListExpression argumentList)
|
protected void |
checkGroovyConstructorMap(Expression receiver, ClassNode receiverType, MapExpression mapExpression) Checks that a constructor style expression is valid regarding the number of arguments and the argument types. |
protected void |
checkGroovyStyleConstructor(ClassNode node, ClassNode[] arguments) A helper method which determines which receiver class should be used in error messages when a field or attribute
is not found. |
protected MethodNode |
checkGroovyStyleConstructor(ClassNode node, ClassNode[] arguments, ASTNode source)
|
protected ClassNode |
checkReturnType(ReturnStatement statement)
|
protected void |
collectAllInterfaceMethodsByName(ClassNode receiver, String name, List methods)
|
protected boolean |
existsProperty(PropertyExpression pexp, boolean checkForReadOnly)
|
protected boolean |
existsProperty(PropertyExpression pexp, boolean readMode, ClassCodeVisitorSupport visitor)
|
static String |
extractPropertyNameFromMethodName(String prefix, String methodName) Stores the inferred return type of a closure or a method. |
protected Object |
extractTemporaryTypeInfoKey(Expression expression)
|
protected static ClassNode[] |
extractTypesFromParameters(Parameter[] parameters)
|
protected ClassNode |
findCurrentInstanceOfClass(Expression expr, ClassNode type)
|
protected List |
findMethod(ClassNode receiver, String name, ClassNode... args)
|
protected MethodNode |
findMethodOrFail(Expression expr, ClassNode receiver, String name, ClassNode... args)
|
protected List |
findMethodsWithGenerated(ClassNode receiver, String name)
|
protected static String |
formatArgumentList(ClassNode[] nodes)
|
protected ClassNode[] |
getArgumentTypes(ArgumentListExpression args)
|
protected DelegationMetadata |
getDelegationMetadata(ClosureExpression expression)
|
protected static ClassNode |
getGroupOperationResultType(ClassNode a, ClassNode b)
|
protected ClassNode |
getInferredReturnType(ASTNode exp)
|
protected ClassNode |
getInferredReturnTypeFromWithClosureArgument(Expression callArguments)
|
protected ClassNode |
getOriginalDeclarationType(Expression lhs)
|
protected ClassNode |
getResultType(ClassNode left, int op, ClassNode right, BinaryExpression expr)
|
protected SourceUnit |
getSourceUnit()
|
protected List |
getTemporaryTypesForExpression(Expression objectExpression)
|
protected ClassNode |
getType(ASTNode exp)
|
protected ClassNode[] |
getTypeCheckingAnnotations()
|
TypeCheckingContext |
getTypeCheckingContext() Returns the current type checking context. |
protected static boolean |
hasRHSIncompleteGenericTypeInfo(ClassNode inferredRightExpressionType)
|
protected StaticTypeCheckingVisitor.SetterInfo |
hasSetter(PropertyExpression pexp)
|
protected void |
inferClosureParameterTypes(ClassNode receiver, Expression arguments, ClosureExpression expression, Parameter param, MethodNode selectedMethod)
|
protected ClassNode |
inferComponentType(ClassNode containerType, ClassNode indexType)
|
protected void |
inferDiamondType(ConstructorCallExpression cce, ClassNode lType)
|
protected ClassNode |
inferListExpressionType(ListExpression list)
|
static ClassNode |
inferLoopElementType(ClassNode collectionType)
|
protected ClassNode |
inferMapExpressionType(MapExpression map)
|
protected ClassNode |
inferReturnTypeGenerics(ClassNode receiver, MethodNode method, Expression arguments)
|
void |
initialize()
|
protected static boolean |
isClassInnerClassOrEqualTo(ClassNode toBeChecked, ClassNode start)
|
protected boolean |
isClosureCall(String name, Expression objectExpression, Expression arguments)
|
protected static boolean |
isNullConstant(Expression expression)
|
protected boolean |
isSecondPassNeededForControlStructure(Map varOrigType, Map oldTracker)
|
boolean |
isSkipMode(AnnotatedNode node)
|
protected boolean |
isSkippedInnerClass(AnnotatedNode node) Test if a node is an inner class node, and if it is, then checks if the enclosing method is skipped. |
protected List |
makeOwnerList(Expression objectExpression)
|
void |
performSecondPass()
|
protected Map |
popAssignmentTracking(Map oldTracker)
|
protected static String |
prettyPrintMethodList(List nodes)
|
protected Map |
pushAssignmentTracking()
|
protected void |
pushInstanceOfTypeInfo(Expression objectOfInstanceOf, Expression typeExpression) Stores information about types when [objectOfInstanceof instanceof typeExpression] is visited |
protected void |
restoreVariableExpressionMetadata(Map typesBeforeVisit)
|
protected void |
saveVariableExpressionMetadata(Set closureSharedExpressions, Map typesBeforeVisit)
|
void |
setCompilationUnit(CompilationUnit cu)
|
void |
setMethodsToBeVisited(Set methodsToBeVisited)
|
protected boolean |
shouldSkipClassNode(ClassNode node)
|
protected boolean |
shouldSkipMethodNode(MethodNode node)
|
protected void |
silentlyVisitMethodNode(MethodNode directMethodCallCandidate)
|
protected void |
startMethodInference(MethodNode node, ErrorCollector collector)
|
protected ClassNode |
storeInferredReturnType(ASTNode node, ClassNode type) This method will convert a closure type to the appropriate SAM type, which will be used
to infer return type generics. |
protected void |
storeInferredTypeForPropertyExpression(PropertyExpression pexp, ClassNode flatInferredType)
|
protected void |
storeTargetMethod(Expression call, MethodNode directMethodCallCandidate)
|
protected void |
storeType(Expression exp, ClassNode cn)
|
protected void |
typeCheckAssignment(BinaryExpression assignmentExpression, Expression leftExpression, ClassNode leftExpressionType, Expression rightExpression, ClassNode inferredRightExpressionType)
|
protected void |
typeCheckClosureCall(Expression callArguments, ClassNode[] args, Parameter[] parameters)
|
protected MethodNode |
typeCheckMapConstructor(ConstructorCallExpression call, ClassNode receiver, Expression arguments)
|
protected boolean |
typeCheckMethodsWithGenericsOrFail(ClassNode receiver, ClassNode[] arguments, MethodNode candidateMethod, Expression location)
|
void |
visitAttributeExpression(AttributeExpression expression)
|
void |
visitBinaryExpression(BinaryExpression expression)
|
void |
visitBitwiseNegationExpression(BitwiseNegationExpression expression)
|
void |
visitCaseStatement(CaseStatement statement)
|
void |
visitCastExpression(CastExpression expression)
|
void |
visitClass(ClassNode node)
|
void |
visitClassExpression(ClassExpression expression)
|
void |
visitClosureExpression(ClosureExpression expression)
|
void |
visitConstructorCallExpression(ConstructorCallExpression call)
|
protected void |
visitConstructorOrMethod(MethodNode node, boolean isConstructor)
|
void |
visitField(FieldNode node) Given a loop collection type, returns the inferred type of the loop element. |
void |
visitForLoop(ForStatement forLoop)
|
void |
visitIfElse(IfStatement ifElse)
|
void |
visitMethod(MethodNode node)
|
protected void |
visitMethodCallArguments(ClassNode receiver, ArgumentListExpression arguments, boolean visitClosures, MethodNode selectedMethod)
|
void |
visitMethodCallExpression(MethodCallExpression call)
|
void |
visitPostfixExpression(PostfixExpression expression)
|
void |
visitPrefixExpression(PrefixExpression expression)
|
void |
visitPropertyExpression(PropertyExpression pexp)
|
void |
visitRangeExpression(RangeExpression expression)
|
void |
visitReturnStatement(ReturnStatement statement)
|
void |
visitStaticMethodCallExpression(StaticMethodCallExpression call)
|
void |
visitSwitch(SwitchStatement statement)
|
void |
visitTernaryExpression(TernaryExpression expression)
|
void |
visitTryCatchFinally(TryCatchStatement statement)
|
void |
visitUnaryMinusExpression(UnaryMinusExpression expression)
|
void |
visitUnaryPlusExpression(UnaryPlusExpression expression)
|
void |
visitVariableExpression(VariableExpression vexp)
|
void |
visitWhileLoop(WhileStatement loop)
|
protected static ClassNode |
wrapTypeIfNecessary(ClassNode type)
|