aboutsummaryrefslogtreecommitdiff
path: root/checker/values.mli
diff options
context:
space:
mode:
authorGaëtan Gilbert2018-11-15 13:30:26 +0100
committerGaëtan Gilbert2018-11-21 13:42:14 +0100
commitd079ec262eacc2149fa46b45ac23097a3333b5fe (patch)
tree4bd801060b02da1efa9ef2169890e78333ca7805 /checker/values.mli
parente0db7f1baef37bb60db2dd1c963572f175392783 (diff)
More informative error on vo validation failure
Now that the checker shares code with the kernel using md5 cic.mli doesn't work. We could md5 declarations.ml but this would miss changes to constr (and cic.mli already missed changes to names, univs). Instead we just print a bit of information (the last seen type name/annotation) when validate fails. This should help debugging when forgetting to update values.ml without the full verbosity of -debug. As such there is no need to -debug in the makefile validate target (NB: CI has an independent implementation of the validate rule since the vos are installed there).
Diffstat (limited to 'checker/values.mli')
-rw-r--r--checker/values.mli19
1 files changed, 19 insertions, 0 deletions
diff --git a/checker/values.mli b/checker/values.mli
index 1b1437a469..616b69907f 100644
--- a/checker/values.mli
+++ b/checker/values.mli
@@ -10,17 +10,36 @@
type value =
| Any
+ (** A value that we won't check, *)
+
| Fail of string
+ (** A value that shouldn't be there at all, *)
+
| Tuple of string * value array
+ (** A debug name and sub-values in this block *)
+
| Sum of string * int * value array array
+ (** A debug name, a number of constant constructors, and sub-values
+ at each position of each possible constructed variant *)
+
| Array of value
| List of value
| Opt of value
| Int
| String
+ (** Builtin Ocaml types. *)
+
| Annot of string * value
+ (** Adds a debug note to the inner value *)
+
| Dyn
+ (** Coq's Dyn.t *)
+
| Proxy of value ref
+ (** Same as the inner value, used to define recursive types *)
+
+(** NB: List and Opt have their own constructors to make it easy to
+ define eg [let rec foo = List foo]. *)
val v_univopaques : value
val v_libsum : value