Module IR.Tenv
val create : unit -> tCreate a new type environment.
val load : IBase.SourceFile.t -> t optionLoad a type environment for a source file
val store_debug_file_for_source : IBase.SourceFile.t -> t -> unitval read : IBase.DB.filename -> t optionread and return a type environment from the given file
val load_global : unit -> t optionload the global type environment (Java)
val store_global : t -> unitsave a global type environment (Java)
val lookup : t -> Typ.Name.t -> Struct.t optionLook up a name in the global type environment.
val mk_struct : t -> ?default:Struct.t -> ?fields:Struct.fields -> ?statics:Struct.fields -> ?methods:Procname.t list -> ?exported_objc_methods:Procname.t list -> ?supers:Typ.Name.t list -> ?objc_protocols:Typ.Name.t list -> ?annots:Annot.Item.t -> ?java_class_info:Struct.java_class_info -> ?dummy:bool -> Typ.Name.t -> Struct.tConstruct a struct_typ, normalizing field types
val add_field : t -> Typ.Name.t -> Struct.field -> unitAdd a field to a given struct in the global type environment.
val pp : Stdlib.Format.formatter -> t -> unitprint a type environment
type per_file=|Global|FileLocal of t
val pp_per_file : Stdlib.Format.formatter -> per_file -> unitprint per file type environment
val merge : src:t -> dst:t -> unitMerge
srcintodstpossibly overwriting pre existing procs indst.
val merge_per_file : src:per_file -> dst:per_file -> per_fileBest-effort merge of
srcintodst. If a procedure is both indstandsrc, the one indstwill get overwritten.
val resolve_method : method_exists:(Procname.t -> Procname.t list -> bool) -> t -> Typ.Name.t -> Procname.t -> Procname.t optionresolve_method ~method_exists tenv class_name procnametries to resolveprocnameto a method inclass_nameor its super-classes, that is non-virtual (non-Java-interface method).method_exists adapted_procname methodsshould check ifadapted_procname(procnamebut with its class potentially changed to someother_class) is among themethodsofother_class.
module SQLite : IBase.SqliteUtils.Data with type t = per_file