schema compile FEATURE status checks for deviated definitions
Fixes #1718
diff --git a/src/schema_compile.h b/src/schema_compile.h
index 9c2e615..746b326 100644
--- a/src/schema_compile.h
+++ b/src/schema_compile.h
@@ -61,7 +61,8 @@
* so their resolution can only be performed after the whole dep set compilation is done.
*/
struct lys_depset_unres {
- struct ly_set xpath; /**< when/must to check */
+ struct ly_set whens; /**< nodes with when to check */
+ struct ly_set musts; /**< set of musts to check */
struct ly_set leafrefs; /**< to validate target of leafrefs */
struct ly_set dflts; /**< set of incomplete default values */
struct ly_set disabled; /**< set of compiled nodes whose if-feature(s) was not satisfied (stored ::lysc_node *) */
@@ -81,6 +82,22 @@
};
/**
+ * @brief Structure for storing schema nodes with must expressions and local module for each of them.
+ */
+struct lysc_unres_must {
+ struct lysc_node *node; /**< node with the must expression(s) */
+ const struct lysp_module **local_mods; /**< sized array of local modules for must(s) */
+};
+
+/**
+ * @brief Structure for storing leafref node and its local module.
+ */
+struct lysc_unres_leafref {
+ struct lysc_node *node; /**< leaf/leaf-list node with leafref type */
+ const struct lysp_module *local_mod; /**< local module of the leafref type */
+};
+
+/**
* @brief Structure for remembering default values of leaves and leaf-lists. They are resolved at schema compilation
* end when the whole schema tree is available.
*/