Module Nullsafe.TypeState

type t

Typestate

type range = IR.Typ.t * InferredNullability.t
val pp_range : Stdlib.Format.formatter -> (IR.Typ.t * InferredNullability.t) -> unit
val add_id : IR.Ident.t -> range -> t -> descr:string -> t

descr is for debug logs only

val add : IR.Pvar.t -> range -> t -> descr:string -> t

descr is for debug logs only

val empty : t
val equal : t -> t -> bool
val join : t -> t -> t
val lookup_id : IR.Ident.t -> t -> range option
val lookup_pvar : IR.Pvar.t -> t -> range option
val pp : Stdlib.Format.formatter -> t -> unit
val remove_id : IR.Ident.t -> t -> descr:string -> t

descr is for debug logs only