Protocol environment: remove unsafe functions that have a safe(r) equivalent
This commit is contained in:
parent
e498a15a1a
commit
105d8e3833
@ -56,12 +56,6 @@ val tl : 'a list -> 'a list
|
||||
(** Return the given list without its first element. Raise
|
||||
[Failure "tl"] if the list is empty. *)
|
||||
|
||||
val nth : 'a list -> int -> 'a
|
||||
(** Return the [n]-th element of the given list.
|
||||
The first element (head of the list) is at position 0.
|
||||
Raise [Failure "nth"] if the list is too short.
|
||||
Raise [Invalid_argument "List.nth"] if [n] is negative. *)
|
||||
|
||||
val nth_opt : 'a list -> int -> 'a option
|
||||
(** Return the [n]-th element of the given list.
|
||||
The first element (head of the list) is at position 0.
|
||||
@ -208,12 +202,6 @@ val memq : 'a -> 'a list -> bool
|
||||
(** {1 List searching} *)
|
||||
|
||||
|
||||
val find : ('a -> bool) -> 'a list -> 'a
|
||||
(** [find p l] returns the first element of the list [l]
|
||||
that satisfies the predicate [p].
|
||||
Raise [Not_found] if there is no value that satisfies [p] in the
|
||||
list [l]. *)
|
||||
|
||||
val find_opt: ('a -> bool) -> 'a list -> 'a option
|
||||
(** [find_opt p l] returns the first element of the list [l] that
|
||||
satisfies the predicate [p], or [None] if there is no value that
|
||||
@ -239,14 +227,6 @@ val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
|
||||
(** {1 Association lists} *)
|
||||
|
||||
|
||||
val assoc : 'a -> ('a * 'b) list -> 'b
|
||||
(** [assoc a l] returns the value associated with key [a] in the list of
|
||||
pairs [l]. That is,
|
||||
[assoc a [ ...; (a,b); ...] = b]
|
||||
if [(a,b)] is the leftmost binding of [a] in list [l].
|
||||
Raise [Not_found] if there is no value associated with [a] in the
|
||||
list [l]. *)
|
||||
|
||||
val assoc_opt: 'a -> ('a * 'b) list -> 'b option
|
||||
(** [assoc_opt a l] returns the value associated with key [a] in the list of
|
||||
pairs [l]. That is,
|
||||
@ -256,10 +236,6 @@ val assoc_opt: 'a -> ('a * 'b) list -> 'b option
|
||||
list [l].
|
||||
@since 4.05 *)
|
||||
|
||||
val assq : 'a -> ('a * 'b) list -> 'b
|
||||
(** Same as {!List.assoc}, but uses physical equality instead of structural
|
||||
equality to compare keys. *)
|
||||
|
||||
val assq_opt : 'a -> ('a * 'b) list -> 'b option
|
||||
(** Same as {!List.assoc_opt}, but uses physical equality instead of structural
|
||||
equality to compare keys.
|
||||
|
@ -300,11 +300,6 @@ val string_of_bool : bool -> string
|
||||
may be shared, the user should not modify them directly.
|
||||
*)
|
||||
|
||||
val bool_of_string : string -> bool
|
||||
(** Convert the given string to a boolean.
|
||||
Raise [Invalid_argument "bool_of_string"] if the string is not
|
||||
["true"] or ["false"]. *)
|
||||
|
||||
val bool_of_string_opt: string -> bool option
|
||||
(** Convert the given string to a boolean.
|
||||
Return [None] if the string is not
|
||||
@ -315,7 +310,7 @@ val bool_of_string_opt: string -> bool option
|
||||
val string_of_int : int -> string
|
||||
(** Return the string representation of an integer, in decimal. *)
|
||||
|
||||
external int_of_string : string -> int = "caml_int_of_string"
|
||||
val int_of_string_opt: string -> int option
|
||||
(** Convert the given string to an integer.
|
||||
The string is read in decimal (by default, or if the string
|
||||
begins with [0u]), in hexadecimal (if it begins with [0x] or
|
||||
@ -329,13 +324,10 @@ external int_of_string : string -> int = "caml_int_of_string"
|
||||
|
||||
The [_] (underscore) character can appear anywhere in the string
|
||||
and is ignored.
|
||||
Raise [Failure "int_of_string"] if the given string is not
|
||||
a valid representation of an integer, or if the integer represented
|
||||
exceeds the range of integers representable in type [int]. *)
|
||||
|
||||
|
||||
val int_of_string_opt: string -> int option
|
||||
(** Same as [int_of_string], but returns [None] instead of raising.
|
||||
Return [None] if the given string is not a valid representation of
|
||||
an integer, or if the integer represented exceeds the range of
|
||||
integers representable in type [int].
|
||||
@since 4.05
|
||||
*)
|
||||
|
||||
|
@ -149,38 +149,18 @@ val escaped : string -> string
|
||||
i.e. [Scanf.unescaped (escaped s) = s] for any string [s] (unless
|
||||
[escape s] fails). *)
|
||||
|
||||
val index : string -> char -> int
|
||||
(** [String.index s c] returns the index of the first
|
||||
occurrence of character [c] in string [s].
|
||||
|
||||
Raise [Not_found] if [c] does not occur in [s]. *)
|
||||
|
||||
val index_opt: string -> char -> int option
|
||||
(** [String.index_opt s c] returns the index of the first
|
||||
occurrence of character [c] in string [s], or
|
||||
[None] if [c] does not occur in [s].
|
||||
@since 4.05 *)
|
||||
|
||||
val rindex : string -> char -> int
|
||||
(** [String.rindex s c] returns the index of the last
|
||||
occurrence of character [c] in string [s].
|
||||
|
||||
Raise [Not_found] if [c] does not occur in [s]. *)
|
||||
|
||||
val rindex_opt: string -> char -> int option
|
||||
(** [String.rindex_opt s c] returns the index of the last occurrence
|
||||
of character [c] in string [s], or [None] if [c] does not occur in
|
||||
[s].
|
||||
@since 4.05 *)
|
||||
|
||||
val index_from : string -> int -> char -> int
|
||||
(** [String.index_from s i c] returns the index of the
|
||||
first occurrence of character [c] in string [s] after position [i].
|
||||
[String.index s c] is equivalent to [String.index_from s 0 c].
|
||||
|
||||
Raise [Invalid_argument] if [i] is not a valid position in [s].
|
||||
Raise [Not_found] if [c] does not occur in [s] after position [i]. *)
|
||||
|
||||
val index_from_opt: string -> int -> char -> int option
|
||||
(** [String.index_from_opt s i c] returns the index of the
|
||||
first occurrence of character [c] in string [s] after position [i]
|
||||
@ -192,15 +172,6 @@ val index_from_opt: string -> int -> char -> int option
|
||||
@since 4.05
|
||||
*)
|
||||
|
||||
val rindex_from : string -> int -> char -> int
|
||||
(** [String.rindex_from s i c] returns the index of the
|
||||
last occurrence of character [c] in string [s] before position [i+1].
|
||||
[String.rindex s c] is equivalent to
|
||||
[String.rindex_from s (String.length s - 1) c].
|
||||
|
||||
Raise [Invalid_argument] if [i+1] is not a valid position in [s].
|
||||
Raise [Not_found] if [c] does not occur in [s] before position [i+1]. *)
|
||||
|
||||
val rindex_from_opt: string -> int -> char -> int option
|
||||
(** [String.rindex_from_opt s i c] returns the index of the
|
||||
last occurrence of character [c] in string [s] before position [i+1]
|
||||
|
@ -308,16 +308,18 @@ let parse_var_annot
|
||||
let split_last_dot = function
|
||||
| None -> None, None
|
||||
| Some `Field_annot s ->
|
||||
try
|
||||
let i = String.rindex s '.' in
|
||||
let s1 = String.sub s 0 i in
|
||||
let s2 = String.sub s (i + 1) (String.length s - i - 1) in
|
||||
let f =
|
||||
if Compare.String.equal s2 "car" || Compare.String.equal s2 "cdr"
|
||||
then None
|
||||
else Some (`Field_annot s2) in
|
||||
Some (`Var_annot s1), f
|
||||
with Not_found -> None, Some (`Field_annot s)
|
||||
match String.rindex_opt s '.' with
|
||||
| None -> None, Some (`Field_annot s)
|
||||
| Some i ->
|
||||
let s1 = String.sub s 0 i in
|
||||
let s2 = String.sub s (i + 1) (String.length s - i - 1) in
|
||||
let f =
|
||||
if Compare.String.equal s2 "car"
|
||||
|| Compare.String.equal s2 "cdr" then
|
||||
None
|
||||
else
|
||||
Some (`Field_annot s2) in
|
||||
Some (`Var_annot s1), f
|
||||
|
||||
let common_prefix v1 v2 =
|
||||
match v1, v2 with
|
||||
|
@ -30,9 +30,7 @@ module Int_index = struct
|
||||
let to_path c l = string_of_int c :: l
|
||||
let of_path = function
|
||||
| [] | _ :: _ :: _ -> None
|
||||
| [ c ] ->
|
||||
try Some (int_of_string c)
|
||||
with _ -> None
|
||||
| [ c ] -> int_of_string_opt c
|
||||
type 'a ipath = 'a * t
|
||||
let args = Storage_description.One {
|
||||
rpc_arg = RPC_arg.int ;
|
||||
@ -330,12 +328,10 @@ module Roll = struct
|
||||
match Misc.take Cycle_repr.Index.path_length l with
|
||||
| None | Some (_, ([] | _ :: _ :: _ ))-> None
|
||||
| Some (l1, [l2]) ->
|
||||
match Cycle_repr.Index.of_path l1 with
|
||||
| None -> None
|
||||
| Some c -> begin
|
||||
try Some (c, int_of_string l2)
|
||||
with _ -> None
|
||||
end
|
||||
match Cycle_repr.Index.of_path l1, int_of_string_opt l2 with
|
||||
| None, _ | _, None -> None
|
||||
| Some c, Some i -> Some (c, i)
|
||||
|
||||
type 'a ipath = ('a * Cycle_repr.t) * int
|
||||
let left_args =
|
||||
Storage_description.One {
|
||||
|
Loading…
Reference in New Issue
Block a user