Static Public Methods | |
void | assignTypesToLocals (JimpleBody stmtBody) |
Private Methods | |
TypeResolver (JimpleBody stmtBody) | |
void | addRelationsBetweenHardNodes () |
void | collapseStronglyConnectedComponents () |
void | computeArrayDepths () |
void | debug () |
void | debug_locals () |
TypeVariable | getTypeVariable (ClassHierarchy.TypeNode typeNode) |
TypeVariable | getTypeVariable (Local local) |
TypeVariable | getTypeVariable (SootClass sClass) |
TypeVariable | getTypeVariable (Type type) |
boolean | mergeAll (TypeVariable var) |
void | mergeBaseTypeArrays () |
void | propagateArrayConstraints () |
void | propagateConstrains () |
void | removeIndirectRelations () |
void | removeRelationsBetweenNonEcrs () |
boolean | resolveComplexRelations () |
boolean | resolveSingleRelations () |
Static Private Methods | |
void | error (String message) |
Private Attributes | |
ClassHierarchy | classHierarchy |
SootMethod | currentMethod |
Vector | typeVariableInstances = new Vector() |
Hashtable | typeVariableHashtable = new Hashtable() |
Hashtable | typeVariableStringHashtable = new Hashtable() |
ConstraintCollector | constraintCollector = new ConstraintCollector() |
IntSet | unresolvedTypeVariables = new IntSet() |
boolean | new_relation |
JimpleBody | stmtBody |
Static Private Attributes | |
final boolean | DEBUG = false |
String | lastClass |
Definition at line 110 of file TypeResolver.java.
|
This constructor triggers the type resolution of local variables of the given statement list body. * Definition at line 1658 of file TypeResolver.java. Referenced by assignTypesToLocals().
|
|
Assign types to local variables. * Definition at line 1949 of file TypeResolver.java. |
|
Merge together variables involved in a dependence cycle. Use the set of all type variables * Definition at line 1955 of file TypeResolver.java. Referenced by TypeResolver().
|
|
Get type variable for the given type. * Definition at line 2238 of file TypeResolver.java. |
|
Get type variable for the given SootClass. * Definition at line 2233 of file TypeResolver.java. |
|
Get type variable for the given local. * Definition at line 2220 of file TypeResolver.java. |
|
Get type variable for the given type node. * Definition at line 2208 of file TypeResolver.java. Referenced by TypeResolver(), getTypeVariable(), removeIndirectRelations(), and resolveSingleRelations().
|
|
Merge the given type variable with all its ancestors and descentants. * Definition at line 2243 of file TypeResolver.java. Referenced by TypeResolver().
|
|
Propagate array constraints to base elements, so that the typing problem is simplified. * Definition at line 2311 of file TypeResolver.java. Referenced by TypeResolver().
|
|
Remove a parent if it is an ancestor of another parent. * Definition at line 2391 of file TypeResolver.java. Referenced by TypeResolver().
|
|
Do the exponential search of a solution. This is an NP-Complete problem. * Definition at line 2431 of file TypeResolver.java. Referenced by TypeResolver().
|
|
Resolve single relations.
|
|
Reference to the class hierarchy * Definition at line 115 of file TypeResolver.java. |
|
Used to collect type constraints * Definition at line 131 of file TypeResolver.java. |
|
Reference to the current method * Definition at line 118 of file TypeResolver.java. |
|
Indicates that a new relation due to merging isArrayOf has be added * Definition at line 137 of file TypeResolver.java. |
|
Hashtable: [TypeNode or Local] -> TypeVariable * Definition at line 125 of file TypeResolver.java. |
|
All type variable instances * Definition at line 122 of file TypeResolver.java. |
|
Hashtable: TypeVariable -> String * Definition at line 128 of file TypeResolver.java. |
|
Type variables left to resolve * Definition at line 134 of file TypeResolver.java. |