- return original == null && !elementCountConstraint.isPresent()
- ? new EmptyListEffectiveStatement(stmt, path, flags, substatements, keyDefinition)
- : new RegularListEffectiveStatement(stmt, path, flags, substatements, keyDefinition,
- elementCountConstraint.orElse(null), original);
+
+ EffectiveStmtUtils.checkUniqueGroupings(stmt, substatements);
+ EffectiveStmtUtils.checkUniqueTypedefs(stmt, substatements);
+ EffectiveStmtUtils.checkUniqueUses(stmt, substatements);
+
+ try {
+ return original == null && !elementCountConstraint.isPresent()
+ ? new EmptyListEffectiveStatement(stmt.declared(), path, flags, substatements, keyDefinition)
+ : new RegularListEffectiveStatement(stmt.declared(), path, flags, substatements, keyDefinition,
+ elementCountConstraint.orElse(null), original);
+ } catch (SubstatementIndexingException e) {
+ throw new SourceException(e.getMessage(), stmt.sourceReference(), e);
+ }