package lsp
Source file code_error.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28type t = { message : string ; data : (string * Dyn.t) list ; loc : Loc0.t option } exception E of t let raise ?loc message data = raise (E { message; data; loc }) let dyn_fields_without_loc { loc = _; message; data } = [ Dyn.String message; Record data ] let to_dyn_without_loc t : Dyn.t = Tuple (dyn_fields_without_loc t) let to_dyn t : Dyn.t = let fields = dyn_fields_without_loc t in let fields = match t.loc with | None -> fields | Some loc -> Loc0.to_dyn loc :: fields in Tuple fields let () = Printexc.register_printer (function | E t -> Some (Dyn.to_string (to_dyn t)) | _ -> None)