Module InferModules.JClasspath

val add_models : string -> unit

Adds the set of procnames for the models of Java libraries so that methods with similar names are skipped during the capture

val is_model : InferIR.Typ.Procname.t -> bool

Check if there is a model for the given procname

type file_entry =
| Singleton of InferBase.SourceFile.t
| Duplicate of (string * InferBase.SourceFile.t) list

map entry for source files with potential basename collision within the same compiler call

type t = string * file_entry InferStdlib.IStd.String.Map.t * Javalib_pack.JBasics.ClassSet.t
val load_from_verbose_output : string -> t

load the list of source files and the list of classes from the javac verbose file

val load_from_arguments : string -> t

load the list of source files and the list of classes from Config.generated_classes

type classmap = Javalib_pack.JCode.jcode Javalib_pack.Javalib.interface_or_class Javalib_pack.JBasics.ClassMap.t
type program
val get_classmap : program -> classmap
val get_models : program -> classmap
val cleanup : program -> unit
val load_program : string -> Javalib_pack.JBasics.ClassSet.t -> program

load a java program

val lookup_node : Javalib_pack.JBasics.class_name -> program -> Javalib_pack.JCode.jcode Javalib_pack.Javalib.interface_or_class option

retrieve a Java node from the classname

val add_missing_callee : program -> InferIR.Typ.Procname.t -> Javalib_pack.JBasics.class_name -> Javalib_pack.JBasics.method_signature -> unit

add the class name of method signature to the list of callees

val set_callee_translated : program -> InferIR.Typ.Procname.t -> unit

set that the CFG for the procedure has been created

val iter_missing_callees : program -> f:(InferIR.Typ.Procname.t -> Javalib_pack.JBasics.class_name -> Javalib_pack.JBasics.method_signature -> unit) -> unit