Package daikon.suppress
Class NISuppression
- Object
-
- 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
Constructors Constructor Description 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)
NISuppression(List<NISuppressor> suppressor_set, NISuppressee suppressee)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String
antecedents_for_suppression(List<Invariant>[] antecedents)
Returns a string describing each of the antecedents for each suppressor.NIS.SuppressState
check(PptTopLevel ppt, VarInfo[] vis, @Nullable 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 tocheck(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.
-
-
-
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 NIS.SuppressState check(PptTopLevel ppt, VarInfo[] vis, @Nullable 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 byinvalidated()
.- Parameters:
ppt
- program point in which to check suppressionvis
- variables over which to check suppressioninv
- falsified invariant (if any). Any suppressor that matches inv will be marked as NIS.SuppressState.MATCH- Returns:
- NIS.SuppressState.VALID if the suppression is valid, NIS.SuppressState.NONSENSICAL if one or more suppressors were nonsensical and the rest were valid, NIS.SuppressState.INVALID otherwise
-
invalidated
public boolean invalidated()
Determines whether or not the falsified invariant previously passed tocheck(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 inants
using this suppression are added to this setants
- 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 falsifiedants
- 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
@SideEffectFree public String toString(@GuardSatisfied NISuppression this)
Returns"suppressor && suppressor ... ==> suppressee"
.
-
antecedents_for_suppression
public String antecedents_for_suppression(List<Invariant>[] antecedents)
Returns a string describing each of the antecedents for each suppressor.
-
-