Change fallback check to use ?check param

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
Rudi Grinberg 2018-07-03 13:54:42 +07:00
parent dee6c9aa96
commit aee019577b
3 changed files with 7 additions and 8 deletions

View File

@ -1129,11 +1129,9 @@ module Rule = struct
field "deps" (list Dep_conf.t) ~default:[] >>= fun deps ->
field "locks" (list String_with_vars.t) ~default:[] >>= fun locks ->
map_validate
(field_b "fallback" >>= fun fallback ->
(if fallback then
Syntax.renamed_in Stanza.syntax (1, 0) ~to_:"(mode fallback)"
else
return ()) >>= fun () ->
(field_b
~check:(Syntax.renamed_in Stanza.syntax (1, 0) ~to_:"(mode fallback)")
"fallback" >>= fun fallback ->
field_o "mode" Mode.t >>= fun mode ->
return (fallback, mode))
~f:(function

View File

@ -481,9 +481,10 @@ module Of_sexp = struct
| None ->
(None, add_known name state)
let field_b name =
let field_b ?check name =
field name ~default:false
(eos >>= function
(Option.value check ~default:(return ()) >>= fun () ->
eos >>= function
| true -> return true
| _ -> bool)

View File

@ -216,7 +216,7 @@ module Of_sexp : sig
-> 'a t
-> 'a option fields_parser
val field_b : string -> bool fields_parser
val field_b : ?check:(unit t) -> string -> bool fields_parser
(** A field that can appear multiple times *)
val multi_field