code: private static boolean isPureIterable(Node node) {
      switch (node.getToken()) {
        case ARRAYLIT:
        case STRING:
        case TEMPLATELIT:
          return true; // These iterables are known to be pure.
        default:
          return false; // Anything else, including a non-iterable (e.g. `null`), would be impure.
      }
    }
docs: Returns {@code true} if {@code node} is guaranteed to be an `Iterable` that causes no
  side-effects during iteration, {@code false} otherwise.