jif.visit
Class IntegerBoundsChecker.DataFlowItem

java.lang.Object
  extended by polyglot.visit.DataFlow.Item
      extended by jif.visit.IntegerBoundsChecker.DataFlowItem
Enclosing class:
IntegerBoundsChecker

protected static class IntegerBoundsChecker.DataFlowItem
extends polyglot.visit.DataFlow.Item

The items that this dataflow analysis operates on is essetially a set of integer constraints. There is a Map from LocalInstances (of type int) to a set of lower bounds.


Field Summary
protected  java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds
          map from LocalInstances (of type int) a set of lower bounds.
 
Constructor Summary
  IntegerBoundsChecker.DataFlowItem()
           
  IntegerBoundsChecker.DataFlowItem(IntegerBoundsChecker.DataFlowItem d)
           
protected IntegerBoundsChecker.DataFlowItem(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds)
           
 
Method Summary
 boolean equals(java.lang.Object o)
           
 int hashCode()
           
 java.lang.String toString()
           
 IntegerBoundsChecker.DataFlowItem update(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> updates, polyglot.types.LocalInstance increased, polyglot.types.LocalInstance decreased)
          Produce a new DataFlowItem that is updated with the updates.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

bounds

protected final java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds
map from LocalInstances (of type int) a set of lower bounds. Elements in the set are either Number or LocalInstances

Constructor Detail

IntegerBoundsChecker.DataFlowItem

public IntegerBoundsChecker.DataFlowItem()

IntegerBoundsChecker.DataFlowItem

protected IntegerBoundsChecker.DataFlowItem(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds)

IntegerBoundsChecker.DataFlowItem

public IntegerBoundsChecker.DataFlowItem(IntegerBoundsChecker.DataFlowItem d)
Method Detail

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in class polyglot.visit.DataFlow.Item

hashCode

public int hashCode()
Specified by:
hashCode in class polyglot.visit.DataFlow.Item

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

update

public IntegerBoundsChecker.DataFlowItem update(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> updates,
                                                polyglot.types.LocalInstance increased,
                                                polyglot.types.LocalInstance decreased)
Produce a new DataFlowItem that is updated with the updates. In particular, the bounds in updates are known to be true. If a LocalInstance has changed, it can be specified as increased, decreased, or both. If increased is true, then it means that the value for the local instance may have increased; similarly, if decreased is true, it means that the value of the local instance may have decreased.