60 lines
1.4 KiB
OCaml
60 lines
1.4 KiB
OCaml
|
|
type entity_kind =
|
|
(* very high level entities *)
|
|
| Package | Dir
|
|
| Module | File
|
|
|
|
(* toplevel entities *)
|
|
| Function
|
|
| Class (* used also for struct, interfaces, traits, see class_kind below *)
|
|
| Type
|
|
| Constant
|
|
| Global
|
|
| Macro
|
|
| Exception
|
|
| TopStmts
|
|
|
|
(* class member entities *)
|
|
| Field
|
|
| Method
|
|
| ClassConstant
|
|
(* ocaml variants (not oo ctor, see Method for that *)
|
|
| Constructor
|
|
|
|
(* misc *)
|
|
| Prototype | GlobalExtern
|
|
| MultiDirs (* computed on the fly from many Dir by codemap *)
|
|
| Other of string
|
|
|
|
val string_of_entity_kind: entity_kind -> string
|
|
val entity_kind_of_string: string -> entity_kind
|
|
|
|
type property =
|
|
(* mostly for Function|Method kind, for codemap to highlight! *)
|
|
| ContainDynamicCall | ContainReflectionCall
|
|
|
|
| TakeArgNByRef of int (* the argument position taken by ref *)
|
|
| UseGlobal of string
|
|
| ContainDeadStatements
|
|
|
|
| DeadCode (* the function itself is dead, e.g. never called *)
|
|
| CodeCoverage of int list (* e.g. covered lines by unit tests *)
|
|
|
|
(* for class *)
|
|
| ClassKind of class_kind
|
|
|
|
| Privacy of privacy
|
|
| Abstract | Final
|
|
| Static
|
|
|
|
(* facebook specific: used for the xhp @required fields for now *)
|
|
| Required | Async
|
|
|
|
and privacy = Public | Protected | Private
|
|
and class_kind =
|
|
| Struct | Class_ | Interface
|
|
| Trait
|
|
(* in Scala, Java, and now PHP enums are actually closer to class
|
|
* than C enums.
|
|
*)
|
|
| Enum
|