Expose Iterator from effectiveChildrenToComplete()
[yangtools.git] / parser / yang-parser-reactor / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / reactor / StatementContextBase.java
index 8375a46705c93cadd3a1c3cf66743511848243f6..4663d2d5b15911fb3a6009731c6636b8c77fc94d 100644 (file)
@@ -358,7 +358,7 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
         return resized;
     }
 
-    abstract Iterable<ReactorStmtCtx<?, ?, ?>> effectiveChildrenToComplete();
+    abstract Iterator<ReactorStmtCtx<?, ?, ?>> effectiveChildrenToComplete();
 
     // exposed for InferredStatementContext only
     final void ensureCompletedPhase(final Mutable<?, ?, ?> stmt) {
@@ -455,8 +455,9 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
         for (final StatementContextBase<?, ?, ?> child : mutableDeclaredSubstatements()) {
             finished &= child.tryToCompletePhase(targetOrder);
         }
-        for (final ReactorStmtCtx<?, ?, ?> child : effectiveChildrenToComplete()) {
-            finished &= child.tryToCompletePhase(targetOrder);
+        final var it = effectiveChildrenToComplete();
+        while (it.hasNext()) {
+            finished &= it.next().tryToCompletePhase(targetOrder);
         }
         return finished;
     }