From 9e1a4ca21e034233d6fc6299bb181f4e1634820e Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Mon, 8 Dec 2025 19:37:10 -0600 Subject: T8061: add boolean test for compatibility of path with reference tree --- src/reference_tree.ml | 9 +++++++++ src/reference_tree.mli | 2 ++ 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/reference_tree.ml b/src/reference_tree.ml index a465a84..e3b5019 100644 --- a/src/reference_tree.ml +++ b/src/reference_tree.ml @@ -687,6 +687,15 @@ let potential_leaf_value rtree cpath = | [] -> false | _ -> is_leaf rtree ref_drop_last +let reference_path_exists rtree cpath = + if Util.is_empty cpath then false + else + if potential_leaf_value rtree cpath then true + else + let rpath = refpath rtree cpath in + if Util.is_empty rpath then false + else true + (* The 'edit' command can descend along a not-as-yet configured path, assuming that it is diff --git a/src/reference_tree.mli b/src/reference_tree.mli index 2bfcb68..e45310e 100644 --- a/src/reference_tree.mli +++ b/src/reference_tree.mli @@ -118,6 +118,8 @@ val set_leaf_data : t -> Config_tree.t -> string list -> Config_tree.t [@@alert exn "Vytree.Empty_path"] [@@alert exn "Vytree.Nonexistent_path"] +val reference_path_exists : t -> string list -> bool + val allowed_edit_level : t -> string list -> (unit, string) result val get_ceil_data : (ref_node_data -> string option) -> t -> string list -> string option -- cgit v1.2.3