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)
;;