daikon.suppress
Class NISuppression

Object
  extended by NISuppression

public class NISuppression
extends Object

Class that defines a single non-instantiating suppression. A suppression consists of one or more suppressors and a suppressee. If each of the suppressors is true they imply the suppressee


Constructor Summary
NISuppression(List<NISuppressor> suppressor_set, NISuppressee suppressee)
           
NISuppression(NISuppressor[] suppressor_set, NISuppressee suppressee)
           
NISuppression(NISuppressor sup1, NISuppressee suppressee)
           
NISuppression(NISuppressor sup1, NISuppressor sup2, NISuppressee suppressee)
           
NISuppression(NISuppressor sup1, NISuppressor sup2, NISuppressor sup3, NISuppressee suppressee)
           
NISuppression(NISuppressor sup1, NISuppressor sup2, NISuppressor sup3, NISuppressor sup4, NISuppressee suppressee)
           
NISuppression(NISuppressor sup1, NISuppressor sup2, NISuppressor sup3, NISuppressor sup4, NISuppressor sup5, NISuppressee suppressee)
           
 
Method Summary
 String antecedents_for_suppression(List<Invariant>[] antecedents)
          Returns a string describing each of the antecedents for each suppressor
 String check(PptTopLevel ppt, VarInfo[] vis, Invariant inv)
          Checks this suppression.
 void clear_state()
          Clears the suppressor state in each suppressor.
 void find_suppressed_invs(Set<NIS.SupInv> suppressed_invs, NIS.Antecedents ants)
          Finds all of the invariants that are suppressed by this suppression.
 void find_unsuppressed_invs(Set<NIS.SupInv> unsuppressed_invs, NIS.Antecedents ants)
          Finds invariants that have become unsuppressed (one or more of their antecedent invariants is falsified).
 boolean invalidated()
          Determines whether or not the falsified invariant previously passed to @link{#check(PptTopLevel,VarInfo[],Invariant)} was the first suppressor to be falsified in this suppression.
 List<NISuppression> recurse_definition(NISuppressionSet ss)
           
 Iterator<NISuppressor> suppressor_iterator()
           
 String toString()
          Returns 'suppressor && suppressor ... => suppressee'
static boolean vis_compatible(VarInfo[] vis)
          Determines if the non-null entries in vis are comparable.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NISuppression

public NISuppression(NISuppressor[] suppressor_set,
                     NISuppressee suppressee)

NISuppression

public NISuppression(List<NISuppressor> suppressor_set,
                     NISuppressee suppressee)

NISuppression

public NISuppression(NISuppressor sup1,
                     NISuppressee suppressee)

NISuppression

public NISuppression(NISuppressor sup1,
                     NISuppressor sup2,
                     NISuppressee suppressee)

NISuppression

public NISuppression(NISuppressor sup1,
                     NISuppressor sup2,
                     NISuppressor sup3,
                     NISuppressee suppressee)

NISuppression

public NISuppression(NISuppressor sup1,
                     NISuppressor sup2,
                     NISuppressor sup3,
                     NISuppressor sup4,
                     NISuppressee suppressee)

NISuppression

public NISuppression(NISuppressor sup1,
                     NISuppressor sup2,
                     NISuppressor sup3,
                     NISuppressor sup4,
                     NISuppressor sup5,
                     NISuppressee suppressee)
Method Detail

suppressor_iterator

public Iterator<NISuppressor> suppressor_iterator()

check

public String check(PptTopLevel ppt,
                    VarInfo[] vis,
                    Invariant inv)
Checks this suppression. Each suppressor is checked to see if it matches inv and if not, whether or not it is valid (true). The results are saved in each suppressor. The suppressor results are used later by @link{#invalidated()}

Parameters:
ppt - Program point in which to check suppression
vis - Variables over which to check suppression
inv - Falsified invariant (if any). Any suppressor that matches inv will be marked as NIS.MATCH
Returns:
NIS.VALID if the suppression is valid, NIS.NONSENSICAL if one or more suppressors were nonsensical and the rest were valid, NIS.INVALID otherwise

invalidated

public boolean invalidated()
Determines whether or not the falsified invariant previously passed to @link{#check(PptTopLevel,VarInfo[],Invariant)} was the first suppressor to be falsified in this suppression. If the falsified invariant is not involved in this suppression, then it can't have been invalidated.


find_suppressed_invs

public void find_suppressed_invs(Set<NIS.SupInv> suppressed_invs,
                                 NIS.Antecedents ants)
Finds all of the invariants that are suppressed by this suppression.

Parameters:
suppressed_invs - Any invariants that are suppressed by the antecedent invariants in ants using this suppression are added to this set.
ants - Antecedents organized by class

find_unsuppressed_invs

public void find_unsuppressed_invs(Set<NIS.SupInv> unsuppressed_invs,
                                   NIS.Antecedents ants)
Finds invariants that have become unsuppressed (one or more of their antecedent invariants is falsified). The invariant may still be suppressed by a different suppression.

Parameters:
unsuppressed_invs - Any invariants that are suppressed by the antecedent invariants in ants using this suppression are added to this set if one or more of the antecedents are falsified.
ants - Antecedents organized by class

vis_compatible

public static boolean vis_compatible(VarInfo[] vis)
Determines if the non-null entries in vis are comparable. Returns true if they are, false if they are not. JHP: this should really be part of is_slice_ok


recurse_definition

public List<NISuppression> recurse_definition(NISuppressionSet ss)

clear_state

public void clear_state()
Clears the suppressor state in each suppressor.


toString

public String toString()
Returns 'suppressor && suppressor ... => suppressee'

Overrides:
toString in class Object

antecedents_for_suppression

public String antecedents_for_suppression(List<Invariant>[] antecedents)
Returns a string describing each of the antecedents for each suppressor