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.

39 lines
1.1 KiB

(*
* Copyright (c) 2013 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*)
open! IStd
(** Eradicate NPEs. *)
val callback_eradicate : Callbacks.proc_callback_t
val callback_check_return_type : TypeCheck.check_return_type -> Callbacks.proc_callback_t
(** Parameters of a call. *)
type parameters = (Exp.t * Typ.t) list
(** Type for a module that provides a main callback function *)
module type CallBackT =
sig
val callback : TypeCheck.checks -> Callbacks.proc_callback_args -> unit
end (* CallBackT *)
(** Extension to the type checker. *)
module type ExtensionT = sig
type extension
val ext : extension TypeState.ext
val update_payload : extension TypeState.t option -> Specs.payload -> Specs.payload
end
(** Given an extension to the typestate with a check, call the check on each instruction. *)
module Build (Extension : ExtensionT) : CallBackT