Module Procname.Hack

type t = private {
  1. class_name : HackClassName.t option;
  2. function_name : string;
  3. arity : int option;
}

Hack procedure is identified by the class and function names and its arity. The arity can be absent for external function declarations of the form declare F.f(...): ...

TODO(arr): consider making the arity non-optional if we remove function declarations from the Tenv

val get_class_name_as_a_string : t -> string option
val is_xinit : t -> bool
val belongs_to_static_companion : t -> bool