Modifiers | Name | Description |
---|---|---|
static class |
TypeCheckingContext.EnclosingClosure |
Represents the context of an enclosing closure. |
Type | Name and description |
---|---|
CompilationUnit |
compilationUnit |
Constructor and description |
---|
TypeCheckingContext
(StaticTypeCheckingVisitor staticTypeCheckingVisitor) |
Type Params | Return Type | Name and description |
---|---|---|
|
CompilationUnit |
getCompilationUnit() |
|
BinaryExpression |
getEnclosingBinaryExpression() Returns the binary expression which is on the top of the stack, or null if there's no such element. |
|
List<BinaryExpression> |
getEnclosingBinaryExpressionStack() Returns the current stack of enclosing binary expressions. |
|
ClassNode |
getEnclosingClassNode() Returns the class node which is on the top of the stack, or null if there's no such element. |
|
List<ClassNode> |
getEnclosingClassNodes() Returns the current stack of enclosing classes. |
|
TypeCheckingContext.EnclosingClosure |
getEnclosingClosure() Returns the closure expression which is on the top of the stack, or null if there's no such element. |
|
List<EnclosingClosure> |
getEnclosingClosureStack() Returns the current stack of enclosing closure expressions. |
|
ConstructorCallExpression |
getEnclosingConstructorCall() Returns the constructor call which is on the top of the stack, or null if there's no such element. |
|
List<ConstructorCallExpression> |
getEnclosingConstructorCalls() Returns the current stack of enclosing constructor calls. |
|
MethodNode |
getEnclosingMethod() Returns the method node which is on the top of the stack, or null if there's no such element. |
|
Expression |
getEnclosingMethodCall() Returns the method call which is on the top of the stack, or null if there's no such element. |
|
List<Expression> |
getEnclosingMethodCalls() Returns the current stack of enclosing method calls. |
|
List<MethodNode> |
getEnclosingMethods() Returns the current stack of enclosing methods. |
|
Expression |
getEnclosingPropertyExpression() Returns the property expression which is on the top of the stack, or null if there's no such element. |
|
List<PropertyExpression> |
getEnclosingPropertyExpressions() Returns the current stack of property expressions. |
|
ReturnStatement |
getEnclosingReturnStatement() Returns the return statement which is on the top of the stack, or null if there's no such element. |
|
ErrorCollector |
getErrorCollector() |
|
List<ErrorCollector> |
getErrorCollectors() |
|
SourceUnit |
getSource() |
|
BinaryExpression |
popEnclosingBinaryExpression() Pops a binary expression from the binary expression stack. |
|
ClassNode |
popEnclosingClassNode() Pops a class from the enclosing classes stack. |
|
TypeCheckingContext.EnclosingClosure |
popEnclosingClosure() Pops a closure expression from the closure expression stack. |
|
ConstructorCallExpression |
popEnclosingConstructorCall() Pops a constructor call from the enclosing constructor call stack. |
|
MethodNode |
popEnclosingMethod() Pops a method from the enclosing methods stack. |
|
Expression |
popEnclosingMethodCall() Pops a method call from the enclosing method call stack. |
|
Expression |
popEnclosingPropertyExpression() Pops a property expression from the property expression stack. |
|
ReturnStatement |
popEnclosingReturnStatement() Pops a return statement from the enclosing return statements stack. |
|
ErrorCollector |
popErrorCollector() |
|
void |
popTemporaryTypeInfo() |
|
void |
pushEnclosingBinaryExpression(BinaryExpression binaryExpression) Pushes a binary expression into the binary expression stack. |
|
void |
pushEnclosingClassNode(ClassNode classNode) Pushes a class into the classes stack. |
|
void |
pushEnclosingClosureExpression(ClosureExpression closureExpression) Pushes a closure expression into the closure expression stack. |
|
void |
pushEnclosingConstructorCall(ConstructorCallExpression call) Pushes a constructor call into the constructor call stack. |
|
void |
pushEnclosingMethod(MethodNode methodNode) Pushes a method into the method stack. |
|
void |
pushEnclosingMethodCall(Expression call) Pushes a method call into the method call stack. |
|
void |
pushEnclosingPropertyExpression(PropertyExpression propertyExpression) Pushes a property expression into the property expression stack. |
|
void |
pushEnclosingReturnStatement(ReturnStatement returnStatement) Pushes a return statement into the return statement stack. |
|
void |
pushErrorCollector(ErrorCollector collector) |
|
ErrorCollector |
pushErrorCollector() |
|
void |
pushTemporaryTypeInfo() |
|
void |
setCompilationUnit(CompilationUnit compilationUnit) |
This field used for type derivation Check IfStatement matched pattern : Object var1; if (!(var1 instanceOf Runnable)){ return } // Here var1 instance of Runnable
A map used to store every type used in closure shared variable assignments. In a second pass, we will compute the LUB of each type and check that method calls on those variables are valid.
This field is used to track assignments in if/else branches, for loops and while loops. For example, in the following code: if (cond) { x = 1 } else { x = '123' } the inferred type of x after the if/else statement should be the LUB of (int, String)
The type of the last encountered "it" implicit parameter
Some expressions need to be visited twice, because type information may be insufficient at some point. For example, for closure shared variables, we need a first pass to collect every type which is assigned to a closure shared variable, then a second pass to ensure that every method call on such a variable is made on a LUB.
Stores information which is only valid in the "if" branch of an if-then-else statement. This is used when the if condition expression makes use of an instanceof check
Returns the binary expression which is on the top of the stack, or null if there's no such element.
Returns the current stack of enclosing binary expressions. The first element is the top of the stack.
Returns the class node which is on the top of the stack, or null if there's no such element.
Returns the current stack of enclosing classes. The first element is the top of the stack, that is to say the currently visited class.
Returns the closure expression which is on the top of the stack, or null if there's no such element.
Returns the current stack of enclosing closure expressions. The first element is the top of the stack.
Returns the constructor call which is on the top of the stack, or null if there's no such element.
Returns the current stack of enclosing constructor calls. The first element is the top of the stack, that is to say the currently visited constructor call.
Returns the method node which is on the top of the stack, or null if there's no such element.
Returns the method call which is on the top of the stack, or null if there's no such element.
Returns the current stack of enclosing method calls. The first element is the top of the stack, that is to say the currently visited method call.
Returns the current stack of enclosing methods. The first element is the top of the stack, that is to say the last visited method.
Returns the property expression which is on the top of the stack, or null if there's no such element.
Returns the current stack of property expressions. The first element is the top of the stack, that is to say the currently visited property expression.
Returns the return statement which is on the top of the stack, or null if there's no such element.
Pops a binary expression from the binary expression stack.
Pops a class from the enclosing classes stack.
Pops a closure expression from the closure expression stack.
Pops a constructor call from the enclosing constructor call stack.
Pops a method from the enclosing methods stack.
Pops a method call from the enclosing method call stack.
Pops a property expression from the property expression stack.
Pops a return statement from the enclosing return statements stack.
Pushes a binary expression into the binary expression stack.
binaryExpression
- the binary expression to be pushedPushes a class into the classes stack.
classNode
- the class to be pushedPushes a closure expression into the closure expression stack.
closureExpression
- the closure expression to be pushedPushes a constructor call into the constructor call stack.
call
- the call expression to be pushedPushes a method into the method stack.
methodNode
- the method to be pushedPushes a method call into the method call stack.
call
- the call expression to be pushed, either a MethodCallExpression or a StaticMethodCallExpressionPushes a property expression into the property expression stack.
propertyExpression
- the property expression to be pushedPushes a return statement into the return statement stack.
returnStatement
- the return statement to be pushedCopyright © 2003-2021 The Apache Software Foundation. All rights reserved.