Module StarvationDomain.Attribute

Tracks expression attributes

type t =
  1. | Nothing
  2. | ThreadGuard
    (*

    is boolean equivalent to whether on UI thread

    *)
  3. | FutureDoneGuard of Absint.HilExp.AccessExpression.t
    (*

    boolean equivalent to Future.isDone()

    *)
  4. | FutureDoneState of bool
    (*

    is a Future ready for non-blocking consumption

    *)
  5. | Runnable of IR.Procname.t
    (*

    is a Runnable/Callable with given "run" procname

    *)
  6. | WorkScheduler of StarvationModels.scheduler_thread_constraint
    (*

    exp is something that schedules work on the given thread

    *)
  7. | Looper of StarvationModels.scheduler_thread_constraint
    (*

    Android looper on given thread

    *)
include Absint.AbstractDomain.WithTop with type t := t
include Absint.AbstractDomain.S with type t := t
include Absint.AbstractDomain.Comparable with type t := t
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val leq : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val top : t
val is_top : t -> bool