Module Nullsafe.TypeErr

module type InstrRefT = sig ... end
module InstrRef : InstrRefT
type err_instance =
| Condition_redundant of {
loc : IBase.Location.t;
is_always_true : bool;
condition_descr : string option;
nonnull_origin : TypeOrigin.t;
}
| Inconsistent_subclass of {
loc : IBase.Location.t;
inheritance_violation : InheritanceRule.violation;
violation_type : InheritanceRule.ReportableViolation.violation_type;
base_proc_name : IR.Procname.Java.t;
overridden_proc_name : IR.Procname.Java.t;
}
| Field_not_initialized of {
loc : IBase.Location.t;
field_name : IR.Fieldname.t;
}
| Over_annotation of {
loc : IBase.Location.t;
over_annotated_violation : OverAnnotatedRule.violation;
violation_type : OverAnnotatedRule.violation_type;
}
| Nullable_dereference of {
dereference_violation : DereferenceRule.violation;
dereference_location : IBase.Location.t;
dereference_type : DereferenceRule.ReportableViolation.dereference_type;
nullable_object_descr : string option;
}
| Bad_assignment of {
assignment_violation : AssignmentRule.violation;
assignment_location : IBase.Location.t;
assignment_type : AssignmentRule.ReportableViolation.assignment_type;
}

Instance of an error

val compare_err_instance : err_instance -> err_instance -> int
val pp_err_instance : Stdlib.Format.formatter -> err_instance -> unit
val node_reset_forall : IR.Procdesc.Node.t -> unit
val register_error : Absint.IntraproceduralAnalysis.t -> (IR.Procdesc.Node.t -> IR.Procdesc.Node.t) -> err_instance -> nullsafe_mode:NullsafeMode.t -> InstrRef.t option -> unit

Register the fact that issue happened. Depending on the error and mode, this error might or might not be reported to the user.

val report_forall_issues_and_reset : Absint.IntraproceduralAnalysis.t -> nullsafe_mode:NullsafeMode.t -> unit

Report registered "forall" issues (if needed), and reset the error table

val is_reportable : nullsafe_mode:NullsafeMode.t -> err_instance -> bool

Is a given issue reportable to the user in a given mode?

val reset : unit -> unit
val get_errors : unit -> (err_instance * InstrRef.t option) list