Module Nullsafe.ThirdPartyAnnotationInfo

type signature_info = {
filename : string;

File where the particular signature is stored

line_number : int;

Line number with this signature

nullability : ThirdPartyMethod.nullability;
}
type storage
val create_storage : unit -> storage
type file_parsing_error = {
line_number : int;
unparsable_method : string;
parsing_error : ThirdPartyMethod.parsing_error;
}
val pp_parsing_error : Stdlib.Format.formatter -> file_parsing_error -> unit
val add_from_signature_file : storage -> filename:string -> lines:string list -> (storagefile_parsing_error) IStdlib.IStd.result

Parse the information from the signature file, and add it to the storage

val find_nullability_info : storage -> ThirdPartyMethod.unique_repr -> signature_info option

The main method. Do we have an information about the third-party method? If we do not, or it is not a third-party method, returns None. Otherwise returns the nullability information.

If the package is third-party, return the relevant .sig file to add signatures for this package.

If the function is third-party (based on its package), return relevant .sig file

val is_third_party_proc : storage -> IR.Procname.t -> bool

Checks whether a required procname comes from third-party code based on available .sig files and config flags. NOTE: considering config flags is done for compatibility with the legacy behaviour and will be removed in the future

val is_third_party_typ : storage -> IR.Typ.t -> bool

See is_third_party_proc.

val is_third_party_class_name : storage -> IR.JavaClassName.t -> bool

See is_third_party_proc.