Module Pulselib.PulseInvalidation

module F = Stdlib.Format
type std_vector_function =
| Assign
| Clear
| Emplace
| EmplaceBack
| Insert
| PushBack
| Reserve
| ShrinkToFit
val pp_std_vector_function : F.formatter -> std_vector_function -> unit
type java_iterator_function =
| Remove
type t =
| CFree
| ConstantDereference of IR.IntLit.t
| CppDelete
| EndIterator
| GoneOutOfScope of IR.Pvar.t * IR.Typ.t
| OptionalEmpty
| StdVector of std_vector_function
| JavaIterator of java_iterator_function
val compare : t -> t -> int
val equal : t -> t -> bool
val isl_equiv : t -> t -> bool

check equality up to some ISL equivalences

val pp : F.formatter -> t -> unit
val describe : F.formatter -> t -> unit
type must_be_valid_reason =
| BlockCall
| InsertionIntoCollection
| SelfOfNonPODReturnMethod of IR.Typ.t
val compare_must_be_valid_reason : must_be_valid_reason -> must_be_valid_reason -> int
val equal_must_be_valid_reason : must_be_valid_reason -> must_be_valid_reason -> bool
val pp_must_be_valid_reason : F.formatter -> must_be_valid_reason option -> unit
val issue_type_of_cause : t -> must_be_valid_reason option -> IBase.IssueType.t