RecoverForXCompilationUnit
Performs type recovery from the root of a compilation unit level
Attributes
- ComputationalUnit
the AstNode type used to represent a computational unit of the language.
- builder
the graph builder
- cpg
the graph.
- cu
a compilation unit, e.g. file, procedure, type, etc.
- globalTable
the global symbol table.
- Graph
- Supertypes
- class RecursiveTask[Unit]class ForkJoinTask[Unit]trait Serializabletrait Future[Unit]class Objecttrait Matchableclass Any
Members list
Value members
Abstract methods
A heuristic method to determine if a call is a constructor or not.
A heuristic method to determine if a call is a constructor or not.
Attributes
Refers to the declared import information. This is for legacy import notation.
Refers to the declared import information. This is for legacy import notation.
Attributes
- i
the call that imports entities into this scope.
Concrete methods
Given a LHS call, will retrieve its symbol to the given types.
Given a LHS call, will retrieve its symbol to the given types.
Attributes
Similar to associateTypes but used in the case where there is some kind of field load.
Associates the types with the identifier. This may sometimes be an identifier that should be considered a field which this method uses isField to determine.
Associates the types with the identifier. This may sometimes be an identifier that should be considered a field which this method uses isField to determine.
Attributes
Associates the types with the identifier. This may sometimes be an identifier that should be considered a field which this method uses isField to determine.
Associates the types with the identifier. This may sometimes be an identifier that should be considered a field which this method uses isField to determine.
Attributes
Attributes
- Definition Classes
- RecursiveTask
Extracts a string representation of the name of the field within this field access.
Extracts a string representation of the name of the field within this field access.
Attributes
Returns the appropriate field parent scope.
Returns the appropriate field parent scope.
Attributes
Will attempt to retrieve index access types otherwise will return dummy value.
Will attempt to retrieve index access types otherwise will return dummy value.
Attributes
Not all frontends populate typeFullName
for literals so we allow this to be overridden.
Not all frontends populate typeFullName
for literals so we allow this to be overridden.
Attributes
Tries to identify the underlying symbol from the call operation as it is used on the LHS of an assignment. The second element is a list of any associated global keys if applicable.
Tries to identify the underlying symbol from the call operation as it is used on the LHS of an assignment. The second element is a list of any associated global keys if applicable.
Attributes
Given a call operation, will attempt to retrieve types from it.
Given a call operation, will attempt to retrieve types from it.
Attributes
Attributes
- Returns:
the import nodes of this computational unit.
Generates an identifier for collection/index-access operations in the symbol table.
Generates an identifier for collection/index-access operations in the symbol table.
Attributes
A heuristic method to determine if an identifier may be a field or not. The result means that it would be stored in the global symbol table. By default this checks if the identifier name matches a member name.
A heuristic method to determine if an identifier may be a field or not. The result means that it would be stored in the global symbol table. By default this checks if the identifier name matches a member name.
Attributes
Will attempt to find the return values of a method if in the CPG, otherwise will give a dummy value.
Will attempt to find the return values of a method if in the CPG, otherwise will give a dummy value.
Attributes
The initial import setting is over-approximated, so this step checks the CPG for any matches and prunes against these findings. If there are no findings, it will leave the table as is. The latter is significant for external types or methods.
The initial import setting is over-approximated, so this step checks the CPG for any matches and prunes against these findings. If there are no findings, it will leave the table as is. The latter is significant for external types or methods.
Attributes
Provides an entrypoint to add known symbols and their possible types.
Provides an entrypoint to add known symbols and their possible types.
Attributes
Will build a call full path using the call base node. This method assumes the base node is in the symbol table.
Will build a call full path using the call base node. This method assumes the base node is in the symbol table.
Attributes
Using an entry from the symbol table, will queue the CPG modification to persist the recovered type information.
Using an entry from the symbol table, will queue the CPG modification to persist the recovered type information.
Attributes
Using assignment and import information (in the global symbol table), will propagate these types in the symbol table.
Using assignment and import information (in the global symbol table), will propagate these types in the symbol table.
Attributes
- a
assignment call pointer.
Visits a call operation being assigned to the result of some operation.
Visits a call operation being assigned to the result of some operation.
Attributes
Visits a call assigned to the return value of a call. This is often when there are operators involved.
Visits a call assigned to the return value of a call. This is often when there are operators involved.
Attributes
Visits a call assigned to an identifier. This is often when there are operators involved.
Visits a call assigned to an identifier. This is often when there are operators involved.
Attributes
Handles a call operation assigned to a method/function pointer.
Handles a call operation assigned to a method/function pointer.
Attributes
Visits an identifier being assigned to the result of some operation.
Visits an identifier being assigned to the result of some operation.
Attributes
Visits an identifier being assigned to a call. This call could be an operation, function invocation, or constructor invocation.
Visits an identifier being assigned to a call. This call could be an operation, function invocation, or constructor invocation.
Attributes
Visits an identifier being assigned to a call's return value.
Visits an identifier being assigned to a call's return value.
Attributes
Visits an identifier being assigned to a constructor and attempts to speculate the constructor path.
Visits an identifier being assigned to a constructor and attempts to speculate the constructor path.
Attributes
Will handle an identifier being assigned to a field value.
Will handle an identifier being assigned to a field value.
Attributes
Visits an identifier being assigned to the value held by another identifier. This is a weak copy.
Visits an identifier being assigned to the value held by another identifier. This is a weak copy.
Attributes
Visits an identifier being assigned to the result of an index access operation.
Visits an identifier being assigned to the result of an index access operation.
Attributes
Will handle literal value assignments. Override if special handling is required.
Will handle literal value assignments. Override if special handling is required.
Attributes
Will handle an identifier holding a function pointer.
Will handle an identifier holding a function pointer.
Attributes
Visits an identifier being assigned to an operator call.
Visits an identifier being assigned to an operator call.
Attributes
Will handle an identifier holding a type pointer.
Will handle an identifier holding a type pointer.
Attributes
Visits an import and stores references in the symbol table as both an identifier and call.
Visits an import and stores references in the symbol table as both an identifier and call.
Attributes
Using import information and internally defined procedures, will generate a mapping between how functions and types are aliased and called and themselves.
Using import information and internally defined procedures, will generate a mapping between how functions and types are aliased and called and themselves.
Attributes
- procedureDeclarations
imports to types or functions and internally defined methods themselves.
Using member information, will propagate member information to the global and local symbol table. By default, fields in the local table will be prepended with "this".
Using member information, will propagate member information to the global and local symbol table. By default, fields in the local table will be prepended with "this".
Attributes
Process each statement but only assign the type of the last statement to the identifier
Process each statement but only assign the type of the last statement to the identifier
Attributes
Inherited methods
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- RecursiveTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Attributes
- Inherited from:
- ForkJoinTask
Concrete fields
Stores type information for local structures that live within this compilation unit, e.g. local variables.
Stores type information for local structures that live within this compilation unit, e.g. local variables.