package stdune

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file user_warning.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let reporter = ref (fun msg -> User_message.prerr msg)
let set_reporter f = reporter := f

let prefix =
  Pp.seq (Pp.tag User_message.Style.Warning (Pp.verbatim "Warning")) (Pp.char ':')
;;

let prefix_paragraphs paragraphs =
  match paragraphs with
  | [] -> [ prefix ]
  | x :: l -> Pp.concat ~sep:Pp.space [ prefix; x ] :: l
;;

let emit_message (message : User_message.t) =
  let paragraphs = prefix_paragraphs message.paragraphs in
  !reporter { message with paragraphs }
;;

let emit ?loc ?hints ?(is_error = false) paragraphs =
  if is_error
  then User_error.raise ?loc ?hints paragraphs
  else !reporter (User_message.make paragraphs ?loc ?hints ~prefix)
;;
OCaml

Innovation. Community. Security.