Pulselib.PulseDiagnosticmodule Attribute = PulseAttributemodule CallEvent = PulseCallEventmodule ConfigName = OpenSource.FbPulseConfigNamemodule DecompilerExpr = PulseDecompilerExprmodule Invalidation = PulseInvalidationmodule TaintItem = PulseTaintItemmodule Trace = PulseTracemodule TransitiveInfo = PulseTransitiveInfomodule ValueHistory = PulseValueHistorytype calling_context = (CallEvent.t * IBase.Location.t) listval compare_calling_context : calling_context -> calling_context -> intval equal_calling_context : calling_context -> calling_context -> booltype access_to_invalid_address = {calling_context : calling_context;the list of function calls leading to the issue being realised, in outermost-to-innermost order, which is an additional common prefix to the traces in the record
*)invalid_address : DecompilerExpr.t;invalidation : Invalidation.t;invalidation_trace : Trace.t;assuming we are in the calling context, the trace leads to invalidation without further assumptions
access_trace : Trace.t;assuming we are in the calling context, the trace leads to an access to the value invalidated in invalidation_trace without further assumptions
must_be_valid_reason : Invalidation.must_be_valid_reason option;}val compare_access_to_invalid_address :
access_to_invalid_address ->
access_to_invalid_address ->
intval equal_access_to_invalid_address :
access_to_invalid_address ->
access_to_invalid_address ->
boolval yojson_of_access_to_invalid_address :
access_to_invalid_address ->
Ppx_yojson_conv_lib.Yojson.Safe.tmodule ErlangError : sig ... endmodule ReadUninitialized : sig ... endtype retain_cycle_data = {expr : DecompilerExpr.t;location : IBase.Location.t option;trace : Trace.t option;}val equal_retain_cycle_data : retain_cycle_data -> retain_cycle_data -> booltype t = | AccessToInvalidAddress of access_to_invalid_address| ConfigUsage of {pname : IR.Procname.t;config : ConfigName.t;branch_location : IBase.Location.t;location : IBase.Location.t;trace : Trace.t;}| ConstRefableParameter of {param : IR.Var.t;typ : IR.Typ.t;location : IBase.Location.t;}| CSharpResourceLeak of {class_name : IR.CSharpClassName.t;allocation_trace : Trace.t;location : IBase.Location.t;}| DynamicTypeMismatch of {location : IBase.Location.t;}| ErlangError of ErlangError.t| TransitiveAccess of {tag : string;description : string;call_trace : Trace.t;transitive_callees : TransitiveInfo.Callees.t;transitive_missed_captures : IR.Typ.Name.Set.t;}| JavaResourceLeak of {class_name : IR.JavaClassName.t;allocation_trace : Trace.t;location : IBase.Location.t;}| HackCannotInstantiateAbstractClass of {type_name : IR.Typ.Name.t;trace : Trace.t;}| HackUnawaitedAwaitable of {allocation_trace : Trace.t;location : IBase.Location.t;}| MemoryLeak of {allocator : Attribute.allocator;allocation_trace : Trace.t;location : IBase.Location.t;}| MutualRecursionCycle of {cycle : PulseMutualRecursion.t;location : IBase.Location.t;}| ReadUninitialized of ReadUninitialized.t| RetainCycle of {values : retain_cycle_data list;location : IBase.Location.t;unknown_access_type : bool;}| StackVariableAddressEscape of {variable : IR.Var.t;history : ValueHistory.t;location : IBase.Location.t;}| TaintFlow of {expr : DecompilerExpr.t;source : TaintItem.t * ValueHistory.t;sink : TaintItem.t * Trace.t;location : IBase.Location.t;flow_kind : flow_kind;policy_description : string;policy_id : int;policy_privacy_effect : string option;}| UnnecessaryCopy of {copied_into : PulseAttribute.CopiedInto.t;source_typ : IR.Typ.t option;source_opt : DecompilerExpr.source_expr option;location : IBase.Location.t;copied_location : (IR.Procname.t * IBase.Location.t) option;location_instantiated : IBase.Location.t option;from : PulseAttribute.CopyOrigin.t;}an error to report to the user
include Ppx_compare_lib.Equal.S with type t := tval equal : t Base__Ppx_compare_lib.equalval pp : F.formatter -> t -> unitval aborts_execution : t -> boolwhether the presence of an error should abort the execution
val get_message_and_suggestion : t -> string * string optionval get_location : t -> IBase.Location.tval get_location_instantiated : t -> IBase.Location.t optionval get_issue_type : latent:bool -> t -> IBase.IssueType.tval get_trace : t -> Absint.Errlog.loc_trace