You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
48 lines
1.4 KiB
(*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
open! IStd
|
|
|
|
type exception_details =
|
|
{ msg: string
|
|
; position: Logging.ocaml_pos
|
|
; source_range: Clang_ast_t.source_range
|
|
; ast_node: string option }
|
|
|
|
exception Unimplemented of exception_details
|
|
|
|
exception IncorrectAssumption of exception_details
|
|
|
|
exception Invalid_declaration
|
|
|
|
val unimplemented :
|
|
Logging.ocaml_pos
|
|
-> Clang_ast_t.source_range
|
|
-> ?ast_node:string
|
|
-> ('a, Format.formatter, unit, _) format4
|
|
-> 'a
|
|
(** Raise Unimplemented. This is caught at the level of translating a method and makes the frontend
|
|
give up on that method. *)
|
|
|
|
val incorrect_assumption :
|
|
Logging.ocaml_pos
|
|
-> Clang_ast_t.source_range
|
|
-> ?ast_node:string
|
|
-> ('a, Format.formatter, unit, _) format4
|
|
-> 'a
|
|
(** Used to mark places in the frontend that incorrectly assume something to be impossible.
|
|
TODO(t21762295) get rid of all instances of this. *)
|
|
|
|
val protect :
|
|
f:(unit -> unit)
|
|
-> recover:(unit -> unit)
|
|
-> pp_context:(Format.formatter -> unit -> unit)
|
|
-> CFrontend_config.translation_unit_context
|
|
-> unit
|
|
(** Catch frontend errors in [f] to avoid crashing due to bugs in the frontend. Upon error [recover]
|
|
is run and [pp_context] is used to provide more info to the user. *)
|