code: private void checkIteratesImpureIterable(Node node, AmbiguatedFunctionSummary encloserSummary) {
        if (!NodeUtil.iteratesImpureIterable(node)) {
          return;
        }
  
        // Treat the (possibly implicit) call to `iterator.next()` as having the same effects as any
        // other unknown function call.
        encloserSummary.setFunctionThrows();
        encloserSummary.setMutatesGlobalState();
  
        // The iterable may be stateful and a param.
        encloserSummary.setMutatesArguments();
      }
docs: Inspect {@code node} for impure iteration and assign the appropriate side-effects to {@code
  encloserSummary} if so.