Textual.ProcDecl
type t = {
qualified_name : QualifiedProcName.t;
formals_types : Typ.annotated list option;
The list of formal argument types may be unknown. Currently, it is possible only for external function declarations when translating from Hack and is denoted with a special ...
syntax. Functions defined within a textual module always have a fully declared list of formal parameters.
result_type : Typ.annotated;
attributes : Attr.t list;
}
val formals_or_die : ?context:string -> t -> Typ.annotated list
val pp : F.formatter -> t -> unit
val of_unop : IR.Unop.t -> QualifiedProcName.t
val to_unop : QualifiedProcName.t -> IR.Unop.t option
val of_binop : IR.Binop.t -> QualifiedProcName.t
val to_binop : QualifiedProcName.t -> IR.Binop.t option
val is_cast_builtin : QualifiedProcName.t -> bool
val is_generics_constructor_builtin : QualifiedProcName.t -> bool
val is_instanceof_builtin : QualifiedProcName.t -> bool
val allocate_object_name : QualifiedProcName.t
val is_allocate_object_builtin : QualifiedProcName.t -> bool
val allocate_array_name : QualifiedProcName.t
val is_allocate_array_builtin : QualifiedProcName.t -> bool
val is_get_lazy_class_builtin : QualifiedProcName.t -> bool
val is_lazy_class_initialize_builtin : QualifiedProcName.t -> bool
val is_side_effect_free_sil_expr : QualifiedProcName.t -> bool
val is_not_regular_proc : QualifiedProcName.t -> bool
val is_curry_invoke : t -> bool
val is_variadic : t -> bool