ocaml/parsing/builtin_attributes.mli

85 lines
3.3 KiB
OCaml

(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Alain Frisch, LexiFi *)
(* *)
(* Copyright 2012 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** Support for some of the builtin attributes
- ocaml.deprecated
- ocaml.alert
- ocaml.error
- ocaml.ppwarning
- ocaml.warning
- ocaml.warnerror
- ocaml.explicit_arity (for camlp4/camlp5)
- ocaml.warn_on_literal_pattern
- ocaml.deprecated_mutable
- ocaml.immediate
- ocaml.immediate64
- ocaml.boxed / ocaml.unboxed
{b Warning:} this module is unstable and part of
{{!Compiler_libs}compiler-libs}.
*)
val check_alerts: Location.t -> Parsetree.attributes -> string -> unit
val check_alerts_inclusion:
def:Location.t -> use:Location.t -> Location.t -> Parsetree.attributes ->
Parsetree.attributes -> string -> unit
val alerts_of_attrs: Parsetree.attributes -> Misc.alerts
val alerts_of_sig: Parsetree.signature -> Misc.alerts
val alerts_of_str: Parsetree.structure -> Misc.alerts
val check_deprecated_mutable:
Location.t -> Parsetree.attributes -> string -> unit
val check_deprecated_mutable_inclusion:
def:Location.t -> use:Location.t -> Location.t -> Parsetree.attributes ->
Parsetree.attributes -> string -> unit
val check_no_alert: Parsetree.attributes -> unit
val error_of_extension: Parsetree.extension -> Location.error
val warning_attribute: ?ppwarning:bool -> Parsetree.attribute -> unit
(** Apply warning settings from the specified attribute.
"ocaml.warning"/"ocaml.warnerror" (and variants without the prefix)
are processed and other attributes are ignored.
Also implement ocaml.ppwarning (unless ~ppwarning:false is
passed).
*)
val warning_scope:
?ppwarning:bool ->
Parsetree.attributes -> (unit -> 'a) -> 'a
(** Execute a function in a new scope for warning settings. This
means that the effect of any call to [warning_attribute] during
the execution of this function will be discarded after
execution.
The function also takes a list of attributes which are processed
with [warning_attribute] in the fresh scope before the function
is executed.
*)
val warn_on_literal_pattern: Parsetree.attributes -> bool
val explicit_arity: Parsetree.attributes -> bool
val immediate: Parsetree.attributes -> bool
val immediate64: Parsetree.attributes -> bool
val has_unboxed: Parsetree.attributes -> bool
val has_boxed: Parsetree.attributes -> bool