From 1af07b233a5ec108aea83d34df6c65b01ecb0b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Tue, 24 Apr 2018 14:26:00 +0800 Subject: [PATCH] Data_encoding: better documentation of `int` --- src/lib_data_encoding/data_encoding.ml | 2 +- src/lib_data_encoding/data_encoding.mli | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib_data_encoding/data_encoding.ml b/src/lib_data_encoding/data_encoding.ml index e00092855..6288985b0 100644 --- a/src/lib_data_encoding/data_encoding.ml +++ b/src/lib_data_encoding/data_encoding.ml @@ -548,7 +548,7 @@ module Encoding = struct let ranged_int minimum maximum = let minimum = min minimum maximum and maximum = max minimum maximum in - if minimum < ~-1_073_741_824 || 1_073_741_823 < maximum then + if minimum < -(1 lsl 30) || (1 lsl 30) - 1 < maximum then invalid_arg "Data_encoding.ranged_int" ; make @@ RangedInt { minimum ; maximum } let ranged_float minimum maximum = diff --git a/src/lib_data_encoding/data_encoding.mli b/src/lib_data_encoding/data_encoding.mli index 2d9fda6a5..00ba32d90 100644 --- a/src/lib_data_encoding/data_encoding.mli +++ b/src/lib_data_encoding/data_encoding.mli @@ -109,7 +109,12 @@ val int32 : int32 encoding (data is encodedas a 64-bit int in binary and a decimal string in JSON). *) val int64 : int64 encoding -(** Integer with bounds in a given range. Both bounds are inclusive *) +(** Integer with bounds in a given range. Both bounds are inclusive. + + Raises [Invalid_argument] if the bounds are beyond the interval + [-2^30; 2^30-1]. These bounds are chosen to be compatible with all versions + of OCaml. +*) val ranged_int : int -> int -> int encoding (** Float with bounds in a given range. Both bounds are inclusive *)