Module IBase.IssueType
type visibility=|Useralways add to error log
|Developeronly add to error log in some debug modes
|Silentnever add to error log
visibility of the issue type
val compare_visibility : visibility -> visibility -> intval equal_visibility : visibility -> visibility -> bool
val string_of_visibility : visibility -> string
val string_of_severity : severity -> string
type t= private{unique_id : string;checker : Checker.t;visibility : visibility;user_documentation : string option;mutable default_severity : severity;used for documentation but can be overriden at report time
mutable enabled : bool;mutable hum : string;mutable doc_url : string option;mutable linters_def_file : string option;}
val pp : Stdlib.Format.formatter -> t -> unitpretty print a localised string
val find_from_string : id:string -> t optionreturn the issue type if it was previously registered
val register_dynamic : ?enabled:bool -> ?hum:string -> ?doc_url:string -> linters_def_file:string option -> id:string -> ?user_documentation:string -> severity -> Checker.t -> tCreate a new issue and register it in the list of all issues. NOTE: if the issue with the same string id is already registered, overrides `hum`, `doc_url`, and `linters_def_file`, but DOES NOT override `enabled`. This trick allows to deal with disabling/enabling dynamic AL issues from the config, when we don't know all params yet. Thus, the human-readable description can be updated when we encounter the definition of the issue type, eg in AL.
val checker_can_report : Checker.t -> t -> boolWhether the issue was registered as coming from the given checker. Important to call this before reporting to keep documentation accurate.
val set_enabled : t -> bool -> unitval abduction_case_not_implemented : tval arbitrary_code_execution_under_lock : tval array_of_pointsto : tval array_out_of_bounds_l1 : tval array_out_of_bounds_l2 : tval array_out_of_bounds_l3 : tval assert_failure : tval bad_footprint : tval biabduction_analysis_stops : tval buffer_overrun_l1 : tval buffer_overrun_l2 : tval buffer_overrun_l3 : tval buffer_overrun_l4 : tval buffer_overrun_l5 : tval buffer_overrun_s2 : tval buffer_overrun_u5 : tval cannot_star : tval captured_strong_self : tval checkers_allocates_memory : tWarning name when a performance critical method directly or indirectly calls a method allocating memory
val checkers_annotation_reachability_error : tval checkers_calls_expensive_method : tWarning name when a performance critical method directly or indirectly calls a method annotatd as expensive
val checkers_expensive_overrides_unexpensive : tWarning name for the subtyping rule: method not annotated as expensive cannot be overridden by a method annotated as expensive
val checkers_fragment_retain_view : tval checkers_immutable_cast : tval checkers_printf_args : tval class_cast_exception : tval complexity_increase : kind:CostKind.t -> is_on_ui_thread:bool -> tval component_with_multiple_factory_methods : tval condition_always_false : tval condition_always_true : tval config_checks_between_markers : tval config_impact_analysis : tval constant_address_dereference : tval create_intent_from_uri : tval cross_site_scripting : tval dangling_pointer_dereference : tval dangling_pointer_dereference_maybe : tval dead_store : tval deadlock : tval divide_by_zero : tval do_not_report : tan issue type that should never be reported
val empty_vector_access : tval eradicate_annotation_graph : tval eradicate_condition_redundant : tval eradicate_field_not_initialized : tval eradicate_field_not_nullable : tval eradicate_field_over_annotated : tval eradicate_inconsistent_subclass_parameter_annotation : tval eradicate_inconsistent_subclass_return_annotation : tval eradicate_redundant_nested_class_annotation : tval eradicate_bad_nested_class_annotation : tval eradicate_nullable_dereference : tval eradicate_parameter_not_nullable : tval eradicate_return_not_nullable : tval eradicate_return_over_annotated : tval eradicate_unvetted_third_party_in_nullsafe : tval eradicate_unchecked_usage_in_nullsafe : tval eradicate_meta_class_can_be_nullsafe : tval eradicate_meta_class_needs_improvement : tval eradicate_meta_class_is_nullsafe : tval exposed_insecure_intent_handling : tval expensive_cost_call : kind:CostKind.t -> tval failure_exe : tval field_not_null_checked : tval guardedby_violation : tval guardedby_violation_nullsafe : tval impure_function : tval inefficient_keyset_iterator : tval inferbo_alloc_is_big : tval inferbo_alloc_is_negative : tval inferbo_alloc_is_zero : tval inferbo_alloc_may_be_big : tval inferbo_alloc_may_be_negative : tval infinite_cost_call : kind:CostKind.t -> tval inherently_dangerous_function : tval insecure_intent_handling : tval integer_overflow_l1 : tval integer_overflow_l2 : tval integer_overflow_l5 : tval integer_overflow_u5 : tval interface_not_thread_safe : tval internal_error : tval invariant_call : tval ipc_on_ui_thread : tval javascript_injection : tval lab_resource_leak : tval dotnet_resource_leak : tval leak_after_array_abstraction : tval leak_in_footprint : tval leak_unknown_origin : tval lockless_violation : tval lock_consistency_violation : tval logging_private_data : tval expensive_loop_invariant_call : tval memory_leak : tval missing_fld : tval missing_required_prop : tval mixed_self_weakself : tval modifies_immutable : tval multiple_weakself : tval mutable_local_variable_in_component_file : tval nil_messaging_to_non_pod : tval null_dereference : tval nullptr_dereference : tval optional_empty_access : tval parameter_not_null_checked : tval precondition_not_found : tval precondition_not_met : tval premature_nil_termination : tval pulse_memory_leak : tval pure_function : tval quandary_taint_error : tval resource_leak : tval retain_cycle : tval skip_function : tval shell_injection : tval shell_injection_risk : tval sql_injection : tval sql_injection_risk : tval stack_variable_address_escape : tval starvation : tval static_initialization_order_fiasco : tval strict_mode_violation : tval strong_self_not_checked : tval symexec_memory_error : tval thread_safety_violation : tval thread_safety_violation_nullsafe : tval topl_error : tval uninitialized_value : tval uninitialized_value_pulse : tval unreachable_code_after : tval use_after_delete : tval use_after_free : tval use_after_lifetime : tval untrusted_buffer_access : tval untrusted_deserialization : tval untrusted_deserialization_risk : tval untrusted_file : tval untrusted_file_risk : tval untrusted_heap_allocation : tval untrusted_intent_creation : tval untrusted_url_risk : tval untrusted_environment_change_risk : tval untrusted_variable_length_array : tval user_controlled_sql_risk : tval vector_invalidation : tval weak_self_in_noescape_block : tval wrong_argument_number : tval unreachable_cost_call : kind:CostKind.t -> tval is_autoreleasepool_size_issue : t -> bool
module Map : IStdlib.PrettyPrintable.PPMap with type PPMap.key = t