Simplify some checks with an is_form function

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
Rudi Grinberg 2018-07-08 14:46:54 +07:00
parent 44dc0394b8
commit f95c9e01d5
3 changed files with 12 additions and 14 deletions

View File

@ -219,6 +219,8 @@ module Var = struct
let rename t ~new_name =
{ t with name = new_name }
let is_form t = Option.is_some t.payload
end
let partial_expand

View File

@ -66,6 +66,8 @@ module Var : sig
val to_string : t -> string
val rename : t -> new_name:string -> t
val is_form : t -> bool
end
val expand

View File

@ -321,24 +321,18 @@ let find_scope_by_dir t dir = Scope.DB.find_by_dir t.scopes dir
let find_scope_by_name t name = Scope.DB.find_by_name t.scopes name
let expand_vars t ~syntax_version ~var : Var.Kind.t option =
begin match String_with_vars.Var.destruct var with
| Single _ -> ()
| Pair (_, _) ->
if String_with_vars.Var.is_form var then
Exn.code_error "expand_vars can't expand forms"
[ "var", String_with_vars.Var.sexp_of_t var
]
end;
Var.Map.expand t.vars ~syntax_version ~var
[ "var", String_with_vars.Var.sexp_of_t var ]
else
Var.Map.expand t.vars ~syntax_version ~var
let expand_form t ~syntax_version ~var =
begin match String_with_vars.Var.destruct var with
| Pair (_, _) -> ()
| Single _ ->
if String_with_vars.Var.is_form var then
Var.Map.expand t.forms ~syntax_version ~var
else
Exn.code_error "expand_vars can't expand single variables"
[ "var", String_with_vars.Var.sexp_of_t var
]
end;
Var.Map.expand t.forms ~syntax_version ~var
[ "var", String_with_vars.Var.sexp_of_t var ]
let (expand_vars_string, expand_vars_path) =
let expand t ~scope ~dir ?(extra_vars=String.Map.empty) s =