YANGTOOLS-838: detect grouping identifier shadowing 66/66666/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 20 Dec 2017 13:07:21 +0000 (14:07 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 23 Dec 2017 12:29:57 +0000 (13:29 +0100)
commitf52b78954a83b6d82a81b7f6cdcc7d7d02e579dd
tree5db43a2bbcfba8667e81a5892a8aba3e19abf362
parent53f0fc35a55660800228559a34ac3a63edd6b081
YANGTOOLS-838: detect grouping identifier shadowing

RFC7950 sections 5.5 and 6.2.1 explicitly forbid identifier
shadowing. Update grouping support to detect and report this
violation.

This patch also fixes typedef support to correctly detect
forward shadowing, when a nested conflicting typedef shadows
a sibling which occurs later in the model text.

Change-Id: I7c67c93c5f13b24657454e13d8b329338f98d7b4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/SchemaUtilsTest.java
yang/yang-data-impl/src/test/resources/schema-utils-test/foo.yang
yang/yang-data-impl/src/test/resources/schema-utils-test/name-conflicts.yang
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/AbstractGroupingStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementSupport.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YT838Test.java [new file with mode: 0644]
yang/yang-parser-rfc7950/src/test/resources/bugs/YT838/grouping-post.yang [new file with mode: 0644]
yang/yang-parser-rfc7950/src/test/resources/bugs/YT838/grouping.yang [new file with mode: 0644]
yang/yang-parser-rfc7950/src/test/resources/bugs/YT838/typedef-post.yang [new file with mode: 0644]
yang/yang-parser-rfc7950/src/test/resources/bugs/YT838/typedef.yang [new file with mode: 0644]