Class SimpleLocalUses

  • All Implemented Interfaces:
    LocalUses

    public class SimpleLocalUses
    extends Object
    implements LocalUses
    Analysis that implements the LocalUses interface. Uses for a Local defined at a given Unit are returned as a list of UnitValueBoxPairs each containing a Unit that use the local and the Local itself wrapped in a ValueBox.
    • Constructor Detail

      • SimpleLocalUses

        public SimpleLocalUses​(UnitGraph graph,
                               LocalDefs localDefs)
        Construct the analysis from a UnitGraph representation of a method body and a LocalDefs interface. This supposes that a LocalDefs analysis must have been computed prior.

        Note: If you do not already have a UnitGraph, it may be cheaper to use the constructor which only requires a Body.

      • SimpleLocalUses

        public SimpleLocalUses​(Body body,
                               LocalDefs localDefs)
        Construct the analysis from a method body and a LocalDefs interface. This supposes that a LocalDefs analysis must have been computed prior.
    • Method Detail

      • getUsesOf

        public List<UnitValueBoxPair> getUsesOf​(Unit s)
        Uses for a Local defined at a given Unit are returned as a list of UnitValueBoxPairs each containing a Unit that use the local and the Local itself wrapped in a ValueBox.
        Specified by:
        getUsesOf in interface LocalUses
        Parameters:
        s - a unit that we want to query for the uses of the Local it (may) define.
        Returns:
        a UnitValueBoxPair of the Units that use the Local.
      • getUsedVariables

        public Set<Local> getUsedVariables()
        Gets all variables that are used in this body
        Returns:
        The list of variables used in this body
      • getUnusedVariables

        public Set<Local> getUnusedVariables()
        Gets all variables that are not used in this body
        Returns:
        The list of variables declared, but not used in this body