original_string: public function mutate($objects)
  	{
  		$objects = call_user_func_array(array($this, 'flattenArguments'), func_get_args());
  		$collect = [];
  
  		foreach ($objects as $obj) {
  			if ($obj instanceof AbstractGenerator) {
  				array_push($collect, $obj);
  				continue;
  			}
  
  			throw new InvalidArgumentException(sprintf('Mutable objects must be instances of %s.', AbstractGenerator::class));
  		}
  		
  		$this->mutates = array_merge(static::objectDiffInArrays($this->mutates, $collect), $collect);
  		
  		return $this;
  	}
code: public function mutate($objects)
  	{
  		$objects = call_user_func_array(array($this, 'flattenArguments'), func_get_args());
  		$collect = [];
  
  		foreach ($objects as $obj) {
  			if ($obj instanceof AbstractGenerator) {
  				array_push($collect, $obj);
  				continue;
  			}
  
  			throw new InvalidArgumentException(sprintf('Mutable objects must be instances of %s.', AbstractGenerator::class));
  		}
  		
  		$this->mutates = array_merge(static::objectDiffInArrays($this->mutates, $collect), $collect);
  		
  		return $this;
  	}
code_tokens: public function mutate ( $ objects ) { $ objects = call_user_func_array ( array ( $ this , 'flattenArguments' ) , func_get_args ( ) ) ; $ collect = [ ] ; foreach ( $ objects as $ obj ) { if ( $ obj instanceof AbstractGenerator ) { array_push ( $ collect , $ obj ) ; continue ; } throw new InvalidArgumentException ( sprintf ( 'Mutable objects must be instances of %s.' , AbstractGenerator :: class ) ) ; } $ this -> mutates = array_merge ( static :: objectDiffInArrays ( $ this -> mutates , $ collect ) , $ collect ) ; return $ this ; }
docstring: Add mutable generators to the mutates collection
  
  @param mixed $objects
  @return $this
  
  @throws \InvalidArgumentException
docstring_tokens: Add mutable generators to the mutates collection