Module CWarnings
type status
=
|
Disabled
|
Enabled
|
AsError
type category
Categories and warnings form a DAG with a common root
all
and warnings as the leaves.
val all : category
type warning
Each warning belongs to some categories maybe including
"default"
. It is possible to query the status of awarning
(unlike categories). XXX we should probably have"default-error"
too.
val create_category : ?from:category list -> name:string -> unit -> category
When
from
is not specified it defaults to[all]
. Empty listfrom
is not allowed. "default" is not allowed infrom
.
val create_warning : ?from:category list -> ?default:status -> name:string -> unit -> warning
from
works the same as withcreate_category
. In particular default status is specified through thedefault
argument not by using the "default" category.
val create_hybrid : ?from:category list -> ?default:status -> name:string -> unit -> category * warning
As
create_warning
, but the warning can also be used as a category i.e. have sub-warnings.
val create_in : warning -> ('a -> Pp.t) -> ?loc:Loc.t -> 'a -> unit
Create a msg with registered printer.
val register_printer : 'a msg -> ('a -> Pp.t) -> unit
Register the printer for a given message. If a printer is already registered it is replaced.
val create : name:string -> ?category:category -> ?default:status -> ('a -> Pp.t) -> ?loc:Loc.t -> 'a -> unit
Combined creation function.
name
must be a fresh name.
val get_status : name:string -> status
val normalize_flags_string : string -> string
Cleans up a user provided warnings status string, e.g. removing unknown warnings (in which case a warning is emitted) or subsumed warnings .
val with_warn : string -> ('b -> 'a) -> 'b -> 'a
with_warn "-xxx,+yyy..." f x
callsf x
after setting the warnings as specified in the string (keeping other previously set warnings), and restores current warnings afterf()
returns or raises an exception. If both f and restoring the warnings raise exceptions, the latter is raised.
val check_unknown_warnings : string -> unit
Warn with "unknown-warning" if any unknown warnings are in the string with non-disabled status.
val override_unknown_warning : bool Stdlib.ref
For command line -w, this avoids using the warning system to avoid breaking "-w -unknown-warning".
module CoreCategories : sig ... end