Module IR.Fieldname

module F = Stdlib.Format
type t

Names for fields of class/struct/union

val compare : t -> t -> int
val equal : t -> t -> bool
val yojson_of_t : t -> Ppx_yojson_conv_lib.Yojson.Safe.t
val loose_compare : t -> t -> int

Similar to compare, but addresses CStruct x and CppClass x as equal.

val compare_name : t -> t -> int

Similar to compare, but compares only names, except template arguments.

val make : Typ.Name.t -> string -> t

create a field of the given class and fieldname

val get_class_name : t -> Typ.Name.t
val get_field_name : t -> string
val is_java : t -> bool
val is_java_synthetic : t -> bool

Check if the field is autogenerated/synthetic *

val is_internal : t -> bool

Check if the field has the prefix "__" or "_M_" (internal field of std::thread::id)

module Set : IStdlib.IStd.Caml.Set.S with type Set.elt = t

Set for fieldnames

module Map : IStdlib.IStd.Caml.Map.S with type Map.key = t

Map for fieldnames

val is_java_outer_instance : t -> bool

Check if the field is the synthetic this$n of a nested class, used to access the n-th outer instance.

val to_string : t -> string

Convert a field name to a string.

val to_full_string : t -> string
val to_simplified_string : t -> string

Convert a fieldname to a simplified string with at most one-level path.

val pp : F.formatter -> t -> unit

Pretty print a field name.

module Normalizer : IStdlib.HashNormalizer.S with type t = t