parameters: (evaluator, iterators, defaults)
return_statement: return defaults
docstring: TODO this function is currently not used. It's a stab at implementing next
      in a different way than fake objects. This would be a bit more flexible.
docstring_summary: TODO this function is currently not used. It's a stab at implementing next
      in a different way than fake objects. This would be a bit more flexible.
docstring_tokens: TODO this function is currently not used . It s a stab at implementing next in a different way than fake objects . This would be a bit more flexible .
function: def builtins_next(evaluator, iterators, defaults):
      """
      TODO this function is currently not used. It's a stab at implementing next
      in a different way than fake objects. This would be a bit more flexible.
      """
      if evaluator.environment.version_info.major == 2:
          name = 'next'
      else:
          name = '__next__'
  
      context_set = NO_CONTEXTS
      for iterator in iterators:
          if isinstance(iterator, AbstractInstanceContext):
              context_set = ContextSet.from_sets(
                  n.infer()
                  for filter in iterator.get_filters(include_self_names=True)
                  for n in filter.get(name)
              ).execute_evaluated()
      if context_set:
          return context_set
      return defaults
function_tokens: def builtins_next ( evaluator , iterators , defaults ) : if evaluator . environment . version_info . major == 2 : name = 'next' else : name = '__next__' context_set = NO_CONTEXTS for iterator in iterators : if isinstance ( iterator , AbstractInstanceContext ) : context_set = ContextSet . from_sets ( n . infer ( ) for filter in iterator . get_filters ( include_self_names = True ) for n in filter . get ( name ) ) . execute_evaluated ( ) if context_set : return context_set return defaults