Module Wp.Warning

Contextual Errors

exception Error of string * string

Source, Reason

val error : ?source:string -> ( 'a, Stdlib.Format.formatter, unit, 'b ) Stdlib.format4 -> 'a

Warning Manager

type t = {
loc : Frama_c_kernel.Filepath.position;
severe : bool;
source : string;
reason : string;
effect : string;
}
val compare : t -> t -> int
val pretty : Stdlib.Format.formatter -> t -> unit
module Set : Stdlib.Set.S with type elt = t
module Map : Stdlib.Map.S with type key = t
val severe : Set.t -> bool
type context
val context : ?source:string -> unit -> context
val flush : context -> Set.t
val add : t -> unit
val create : ?log:bool -> ?severe:bool -> ?source:string -> effect:string -> ( 'a, Stdlib.Format.formatter, unit, t ) Stdlib.format4 -> 'a
val emit : ?severe:bool -> ?source:string -> effect:string -> ( 'a, Stdlib.Format.formatter, unit ) Stdlib.format -> 'a

Emit a warning in current context. Defaults: severe=true, source="wp".

val handle : ?severe:bool -> effect:string -> handler:( 'a -> 'b ) -> ( 'a -> 'b ) -> 'a -> 'b

Handle the error and emit a warning with specified severity and effect if a context has been set. Otherwise, a WP-fatal error is raised instead. Default for severe is false.

type 'a outcome =
| Result of Set.t * 'a
| Failed of Set.t
val catch : ?source:string -> ?severe:bool -> effect:string -> ( 'a -> 'b ) -> 'a -> 'b outcome

Set up a context for the job. If non-handled errors are raised, then a warning is emitted with specified severity and effect. Default for severe is true.