Parser fails to find the argument node of a unique statement if a node is augmented to the list with the unique statement.
For example, in the following example a node (foo-leaf) is augmented to the list (bar-list) with a unique statement (unique bar-leaf2;):
module foo { namespace "urn:foo"; prefix "foo"; import bar { prefix bar; } container foo { uses bar:bar-group; } augment "/foo:foo/foo:bar-list" { leaf foo-leaf { type string; } } }
module bar { namespace "urn:bar"; prefix "bar"; grouping bar-group { list bar-list { key bar-leaf1; unique bar-leaf2; leaf bar-leaf1 { type string; } leaf bar-leaf2 { type string; } } } }
and parser complains that the argument node bar-leaf2 does not exist.
Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Following components of unique statement argument refer to non-existent nodes: [Descendant{qnames=[(urn:bar)bar-leaf2]}] [at /volumes/OpenDaylight/yangtools/parser/yang-parser-rfc7950/target/test-classes/bugs/YT1470/bar.yang:8:7] at org.opendaylight.yangtools.yang.parser.rfc7950@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UniqueStatementSupport$RequireLeafDescendants.prerequisiteFailed(UniqueStatementSupport.java:201) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.failModifier(ModifierImpl.java:86) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.failModifiers(SourceSpecificContext.java:375) at org.opendaylight.yangtools.yang.parser.reactor@10.0.2-SNAPSHOT/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.addSourceExceptions(BuildGlobalContext.java:307) ... 50 more