Module Warnings

Warning definitions

Warning: this module is unstable and part of compiler-libs.

type loc = {
  1. loc_start : Stdlib.Lexing.position;
  2. loc_end : Stdlib.Lexing.position;
  3. loc_ghost : bool;
}
type field_usage_warning =
  1. | Unused
  2. | Not_read
  3. | Not_mutated
type constructor_usage_warning =
  1. | Unused
  2. | Not_constructed
  3. | Only_exported_private
type t =
  1. | Comment_start
  2. | Comment_not_end
  3. | Fragile_match of string
  4. | Ignored_partial_application
  5. | Labels_omitted of string list
  6. | Method_override of string list
  7. | Partial_match of string
  8. | Missing_record_field_pattern of string
  9. | Non_unit_statement
  10. | Redundant_case
  11. | Redundant_subpat
  12. | Instance_variable_override of string list
  13. | Illegal_backslash
  14. | Implicit_public_methods of string list
  15. | Unerasable_optional_argument
  16. | Undeclared_virtual_method of string
  17. | Not_principal of string
  18. | Non_principal_labels of string
  19. | Ignored_extra_argument
  20. | Nonreturning_statement
  21. | Preprocessor of string
  22. | Useless_record_with
  23. | Bad_module_name of string
  24. | All_clauses_guarded
  25. | Unused_var of string
  26. | Unused_var_strict of string
  27. | Wildcard_arg_to_constant_constr
  28. | Eol_in_string
  29. | Duplicate_definitions of string * string * string * string
  30. | Module_linked_twice of string * string * string
  31. | Unused_value_declaration of string
  32. | Unused_open of string
  33. | Unused_type_declaration of string
  34. | Unused_for_index of string
  35. | Unused_ancestor of string
  36. | Unused_constructor of string * constructor_usage_warning
  37. | Unused_extension of string * bool * constructor_usage_warning
  38. | Unused_rec_flag
  39. | Name_out_of_scope of string * string list * bool
  40. | Ambiguous_name of string list * string list * bool * string
  41. | Disambiguated_name of string
  42. | Nonoptional_label of string
  43. | Open_shadow_identifier of string * string
  44. | Open_shadow_label_constructor of string * string
  45. | Bad_env_variable of string * string
  46. | Attribute_payload of string * string
  47. | Eliminated_optional_arguments of string list
  48. | No_cmi_file of string * string option
  49. | Unexpected_docstring of bool
  50. | Wrong_tailcall_expectation of bool
  51. | Fragile_literal_pattern
  52. | Misplaced_attribute of string
  53. | Duplicated_attribute of string
  54. | Inlining_impossible of string
  55. | Unreachable_case
  56. | Ambiguous_var_in_pattern_guard of string list
  57. | No_cmx_file of string
  58. | Flambda_assignment_to_non_mutable_value
  59. | Unused_module of string
  60. | Unboxable_type_in_prim_decl of string
  61. | Constraint_on_gadt
  62. | Erroneous_printed_signature of string
  63. | Unsafe_array_syntax_without_parsing
  64. | Redefining_unit of string
  65. | Unused_open_bang of string
  66. | Unused_functor_parameter of string
  67. | Match_on_mutable_state_prevent_uncurry
  68. | Unused_field of string * field_usage_warning
  69. | Missing_mli
  70. | Unused_tmc_attribute
  71. | Tmc_breaks_tailcall
type alert = {
  1. kind : string;
  2. message : string;
  3. def : loc;
  4. use : loc;
}
val parse_options : bool -> string -> alert option
val parse_alert_option : string -> unit

Disable/enable alerts based on the parameter to the -alert command-line option. Raises Arg.Bad if the string is not a valid specification.

val without_warnings : (unit -> 'a) -> 'a

Run the thunk with all warnings and alerts disabled.

val is_active : t -> bool
val is_error : t -> bool
val defaults_w : string
val defaults_warn_error : string
type reporting_information = {
  1. id : string;
  2. message : string;
  3. is_error : bool;
  4. sub_locs : (loc * string) list;
}
val report : t -> [ `Active of reporting_information | `Inactive ]
val report_alert : alert -> [ `Active of reporting_information | `Inactive ]
exception Errors
val check_fatal : unit -> unit
val reset_fatal : unit -> unit
val help_warnings : unit -> unit
type state
val backup : unit -> state
val restore : state -> unit
val with_state : state -> (unit -> 'a) -> 'a
val mk_lazy : (unit -> 'a) -> 'a Stdlib.Lazy.t

Like Lazy.of_fun, but the function is applied with the warning/alert settings at the time mk_lazy is called.

type description = {
  1. number : int;
  2. names : string list;
  3. description : string;
}
val descriptions : description list