Class LocalDefsFactory


  • public class LocalDefsFactory
    extends Object
    The default implementation of local defs.
    • Constructor Detail

      • LocalDefsFactory

        public LocalDefsFactory​(Singletons.Global global)
        Singleton constructor.
        Parameters:
        global - the singletons container. Must not be null
        Throws:
        NullPointerException - when global argument is null
    • Method Detail

      • newLocalDefs

        public LocalDefs newLocalDefs​(Body body,
                                      boolean expectUndefined)
        Creates a new LocalDefs analysis based on a ExceptionalUnitGraph If you don't trust the input you should set expectUndefined to true.
        Parameters:
        body -
        expectUndefined - if you expect uses of locals that are undefined
        Returns:
        a new LocalDefs instance
        See Also:
        ExceptionalUnitGraphFactory.createExceptionalUnitGraph(Body)
      • newLocalDefs

        public LocalDefs newLocalDefs​(UnitGraph graph)
        Creates a new LocalDefs analysis based on a given UnitGraph
        Parameters:
        graph - the graph to work with
        Returns:
        a new LocalDefs instance
        See Also:
        UnitGraph(Body)
      • newLocalDefs

        public LocalDefs newLocalDefs​(UnitGraph graph,
                                      boolean expectUndefined)
        Creates a new LocalDefs analysis based on a given UnitGraph. If you don't trust the input you should set expectUndefined to true.
        Parameters:
        graph - the graph to work with
        expectUndefined - if you expect uses of locals that are undefined
        Returns:
        a new LocalDefs instance
        See Also:
        UnitGraph(Body), UsesValidator
      • newLocalDefsFlowInsensitive

        public LocalDefs newLocalDefsFlowInsensitive​(UnitGraph graph)
        Creates a new LocalDefs analysis based on a given UnitGraph. This analysis will be flow-insensitive, i.e., for a given local, it will always give all statements that ever write to that local regardless of potential redefinitions in between.
        Parameters:
        graph - the graph to work with
        Returns:
        a new LocalDefs instance
        See Also:
        UnitGraph(Body), UsesValidator