Interface ContextSelector

All Known Implementing Classes:
ArgumentSpecialization.ArgumentCountContextSelector, CallStringContextSelector, ClassFactoryContextSelector, CloneContextSelector, ContainerContextSelector, ContextInsensitiveSelector, CPAContextSelector, CrossLanguageContextSelector, DefaultContextSelector, DelegatingContextSelector, GetClassContextSelector, GetMethodContextSelector, IntentContextSelector, JavaScriptConstructorContextSelector, JavaScriptFunctionApplyContextSelector, MiscellaneousHacksContextSelector, nCFAContextSelector, nObjContextSelector, ObjectSensitivityContextSelector, OneLevelForLexicalAccessFunctions, OneLevelSiteContextSelector, PropertyNameContextSelector, ReceiverTypeContextSelector, RecursionBoundContextSelector, RecursionCheckContextSelector, TargetMethodContextSelector, UnionContextSelector, UriPrefixContextSelector

public interface ContextSelector
An interface to an object which helps control context-sensitivity.
  • Method Details

    • getCalleeTarget

      Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] actualParameters)
      Given a calling node and a call site, returns the Context in which the callee should be evaluated.
      Parameters:
      caller - the node containing the call site
      site - description of the call site
      actualParameters - the abstract objects (InstanceKeys) of parameters of interest to the selector
      Returns:
      the Context in which the callee should be evaluated, or null if no information is available.
    • getRelevantParameters

      IntSet getRelevantParameters(CGNode caller, CallSiteReference site)
      Given a calling node and a call site, return the set of parameters based on which this selector may choose to specialize contexts.
      Parameters:
      caller - the calling node
      site - the specific call site
      Returns:
      the set of parameters of interest