Module Parsing0.Builtin_attributes

Support for some of the builtin attributes

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

let check_alerts: Location.t => Parsetree.attributes => string => unit;
let check_alerts_inclusion: def:Location.t => use:Location.t => Location.t => Parsetree.attributes => Parsetree.attributes => string => unit;
let alerts_of_attrs: Parsetree.attributes => Misc.alerts;
let alerts_of_sig: Parsetree.signature => Misc.alerts;
let alerts_of_str: Parsetree.structure => Misc.alerts;
let check_deprecated_mutable: Location.t => Parsetree.attributes => string => unit;
let check_deprecated_mutable_inclusion: def:Location.t => use:Location.t => Location.t => Parsetree.attributes => Parsetree.attributes => string => unit;
let check_no_alert: Parsetree.attributes => unit;
let check_bs_attributes_inclusion: ref((Parsetree.attributes => Parsetree.attributes => string => option((string, string))));
let check_duplicated_labels: ref((list(Parsetree.label_declaration) => option(Asttypes.loc(string))));
let error_of_extension: Parsetree.extension => Location.error;
let 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).

let 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.

let warn_on_literal_pattern: Parsetree.attributes => bool;
let explicit_arity: Parsetree.attributes => bool;
let immediate: Parsetree.attributes => bool;
let immediate64: Parsetree.attributes => bool;
let has_unboxed: Parsetree.attributes => bool;
let has_boxed: Parsetree.attributes => bool;