Class ScopeMappingInstanceKeys.ScopeMappingInstanceKey

java.lang.Object
com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey
All Implemented Interfaces:
ContextItem, InstanceKey
Enclosing class:
ScopeMappingInstanceKeys

public class ScopeMappingInstanceKeys.ScopeMappingInstanceKey extends Object implements InstanceKey
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.

  • Constructor Details

    • ScopeMappingInstanceKey

      public ScopeMappingInstanceKey(CGNode creator, InstanceKey base)
  • Method Details