ocaml/parsing/builtin_attributes.mli

83 lines
3.2 KiB
OCaml
Raw Normal View History

(**************************************************************************)
(* *)
(* 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. *)
(* *)
(**************************************************************************)
2015-12-02 05:51:59 -08:00
(** Support for some of the builtin attributes
- ocaml.deprecated
- 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.boxed / ocaml.unboxed
{b Warning:} this module is unstable and part of
{{!Compiler_libs}compiler-libs}.
2015-12-02 05:51:59 -08:00
*)
val check_deprecated: Location.t -> Parsetree.attributes -> string -> unit
val check_deprecated_inclusion:
def:Location.t -> use:Location.t -> Location.t -> Parsetree.attributes ->
Parsetree.attributes -> string -> unit
2015-12-02 05:51:59 -08:00
val deprecated_of_attrs: Parsetree.attributes -> string option
val deprecated_of_sig: Parsetree.signature -> string option
val deprecated_of_str: Parsetree.structure -> string option
2016-02-16 04:23:31 -08:00
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_deprecated : Parsetree.attributes -> unit
2015-12-02 05:51:59 -08:00
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.
*)
2015-12-02 05:51:59 -08:00
val warn_on_literal_pattern: Parsetree.attributes -> bool
val explicit_arity: Parsetree.attributes -> bool
val immediate: Parsetree.attributes -> bool
2016-05-25 07:29:05 -07:00
val has_unboxed: Parsetree.attributes -> bool
val has_boxed: Parsetree.attributes -> bool