plugins types BUGFIX local module of dflt ident without prefix
Test included.
Fixes #1777
diff --git a/src/plugins_types.c b/src/plugins_types.c
index 88625c1..372c783 100644
--- a/src/plugins_types.c
+++ b/src/plugins_types.c
@@ -155,9 +155,11 @@
} else {
switch (format) {
case LY_VALUE_SCHEMA:
+ /* use local module */
+ return ly_schema_resolve_prefix(ctx, prefix, prefix_len, prefix_data);
case LY_VALUE_SCHEMA_RESOLVED:
- /* use context node module, handles augments */
- return ctx_node->module;
+ /* use local module */
+ return ly_schema_resolved_resolve_prefix(ctx, prefix, prefix_len, prefix_data);
case LY_VALUE_CANON:
case LY_VALUE_JSON:
case LY_VALUE_LYB:
diff --git a/tests/utests/schema/test_tree_schema_compile.c b/tests/utests/schema/test_tree_schema_compile.c
index ca70ced..fd148a9 100644
--- a/tests/utests/schema/test_tree_schema_compile.c
+++ b/tests/utests/schema/test_tree_schema_compile.c
@@ -2354,6 +2354,17 @@
" list mylist {key \"name\"; unique \"value\"; uses z2:leafs_group;}"
"}"
"augment /z1:root { uses list_group;} }", LYS_IN_YANG, NULL));
+
+ /* identity */
+ assert_int_equal(LY_SUCCESS, lys_parse_mem(UTEST_LYCTX, "module y1 {namespace urn:y1;prefix y1;"
+ "identity base_identity;"
+ "identity id1 {base \"base_identity\";}"
+ "grouping attrs_group {"
+ " leaf name {type identityref {base \"base_identity\";} default \"id1\";}"
+ "}}", LYS_IN_YANG, NULL));
+ assert_int_equal(LY_SUCCESS, lys_parse_mem(UTEST_LYCTX, "module y2 {namespace urn:y2;prefix y2;"
+ "import y1 {prefix y1;}"
+ "container root {uses y1:attrs_group;}}", LYS_IN_YANG, NULL));
}
static void