Class CrossLanguageContextSelector

  • All Implemented Interfaces:
    ContextSelector

    public class CrossLanguageContextSelector
    extends Object
    implements ContextSelector
    A ContextSelector implementation adapted to work for analysis across multiple languages. This context selector delegates to one of several child selectors based on the language of the code body for which a context is being selected. This provides a convenient way to integrate multiple, language-specific specialized context policies---such as the ones used for clone() in Java and runtime primitives in JavaScript.
    • Constructor Detail

      • CrossLanguageContextSelector

        public CrossLanguageContextSelector​(Map languageSelectors)
    • Method Detail

      • getCalleeTarget

        public Context getCalleeTarget​(CGNode caller,
                                       CallSiteReference site,
                                       IMethod callee,
                                       InstanceKey[] receiver)
        Description copied from interface: ContextSelector
        Given a calling node and a call site, returns the Context in which the callee should be evaluated.
        Specified by:
        getCalleeTarget in interface ContextSelector
        Parameters:
        caller - the node containing the call site
        site - description of the call site
        receiver - 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

        public IntSet getRelevantParameters​(CGNode caller,
                                            CallSiteReference site)
        Description copied from interface: ContextSelector
        Given a calling node and a call site, return the set of parameters based on which this selector may choose to specialize contexts.
        Specified by:
        getRelevantParameters in interface ContextSelector
        Parameters:
        caller - the calling node
        site - the specific call site
        Returns:
        the set of parameters of interest