Module PulseTaintConfig.Unit

type procedure_matcher =
  1. | ProcedureName of {
    1. name : string;
    }
  2. | ProcedureNameRegex of {
    1. name_regex : IStdlib.IStd.Str.regexp;
    2. exclude_in : string list option;
    3. exclude_names : string list option;
    }
  3. | ClassNameRegex of {
    1. name_regex : IStdlib.IStd.Str.regexp;
    2. exclude_in : string list option;
    3. exclude_names : string list option;
    }
  4. | ClassAndMethodNames of {
    1. class_names : string list;
    2. method_names : string list;
    }
  5. | ClassNameAndMethodRegex of {
    1. class_names : string list;
    2. method_name_regex : IStdlib.IStd.Str.regexp;
    3. exclude_in : string list option;
    4. exclude_names : string list option;
    }
  6. | ClassRegexAndMethodRegex of {
    1. class_name_regex : IStdlib.IStd.Str.regexp;
    2. method_name_regex : IStdlib.IStd.Str.regexp;
    3. exclude_in : string list option;
    4. exclude_names : string list option;
    }
  7. | ClassAndMethodReturnTypeNames of {
    1. class_names : string list;
    2. method_return_type_names : string list;
    }
  8. | ClassWithAnnotation of {
    1. annotation : string;
    2. annotation_values : string list option;
    }
  9. | ClassWithAnnotationAndRegexAndMethodRegex of {
    1. annotation : string;
    2. annotation_values : string list option;
    3. class_name_regex : IStdlib.IStd.Str.regexp;
    4. method_name_regex : IStdlib.IStd.Str.regexp;
    5. exclude_in : string list option;
    6. exclude_names : string list option;
    }
  10. | OverridesOfClassWithAnnotation of {
    1. annotation : string;
    }
  11. | MethodWithAnnotation of {
    1. annotation : string;
    2. annotation_values : string list option;
    }
  12. | Block of {
    1. name : string;
    }
  13. | BlockNameRegex of {
    1. name_regex : IStdlib.IStd.Str.regexp;
    2. exclude_in : string list option;
    }
  14. | Allocation of {
    1. class_name : string;
    }
type field_matcher =
  1. | FieldRegex of {
    1. name_regex : IStdlib.IStd.Str.regexp;
    2. exclude_in : string list option;
    3. exclude_names : string list option;
    }
  2. | ClassAndFieldNames of {
    1. class_names : string list;
    2. field_names : string list;
    }
  3. | FieldWithAnnotation of {
    1. annotation : string;
    2. annotation_values : string list option;
    }
type procedure_unit = {
  1. procedure_matcher : procedure_matcher;
  2. arguments : ATDGenerated.Pulse_config_t.argument_constraint list;
  3. kinds : Kind.t list;
  4. procedure_target : Target.procedure_target;
}
type field_unit = {
  1. field_matcher : field_matcher;
  2. kinds : Kind.t list;
  3. field_target : Target.field_target;
  4. sanitized_in : string list option;
}
type t =
  1. | ProcedureUnit of procedure_unit
  2. | FieldUnit of field_unit