Class ScopeMappingInstanceKeys.ScopeMappingInstanceKey
java.lang.Object
com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey
- All Implemented Interfaces:
ContextItem, InstanceKey
- Enclosing class:
ScopeMappingInstanceKeys
An
InstanceKey carrying information about which CGNodes represent lexical
parents of the allocating CGNode.
The fact that we discover at most one CGNode per lexical parent relies on the
following property: in a call graph, the contexts used for a nested function can be finer than
those used for the containing function, but _not_ coarser. This ensures that there is at most
one CGNode corresponding to a lexical parent (e.g., we don't get two clones of function f1()
invoking a single CGNode representing nested function f2())
Note that it is possible to not find a CGNode corresponding to some lexical parent;
this occurs when a deeply nested function is returned before being invoked, so some lexical
parent is no longer on the call stack when the function is allocated. See test case nested.js.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ContextItem
ContextItem.Value<T> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleangetBase()For now, we assert that each InstanceKey represents a set of classes which are all of the same concrete type (modulo the fact that all arrays of references are considered concrete type []Object;)Get the creation sites ofthis, i.e., the statements that may allocate objects represented bythis.getFunargNodes(Pair<String, String> name) get the CGNode representing the lexical parent ofcreatorwith name definergetFunargNodes(Pair<String, String> name, Set<InstanceKey> history) inthashCode()toString()
-
Constructor Details
-
ScopeMappingInstanceKey
-
-
Method Details
-
getConcreteType
Description copied from interface:InstanceKeyFor now, we assert that each InstanceKey represents a set of classes which are all of the same concrete type (modulo the fact that all arrays of references are considered concrete type []Object;)- Specified by:
getConcreteTypein interfaceInstanceKey
-
getFunargNodes
-
getFunargNodes
-
hashCode
-
equals
-
toString
-
getBase
-
getCreator
-
getCreationSites
Description copied from interface:InstanceKeyGet the creation sites ofthis, i.e., the statements that may allocate objects represented bythis. A creation site is a pair (n,s), where n is the containingCGNodein the givenCallGraphCGand s is the allocatingNewSiteReference.- Specified by:
getCreationSitesin interfaceInstanceKey
-