original_string: public function mutable($props)
  	{
  		$props = call_user_func_array(array($this, 'flattenArguments'), func_get_args()); 
  		$collect = $unknown = [];
  
  		foreach ($props as $prop) {
  			if (!property_exists(AbstractGenerator::class, $prop)) {
  				array_push($unknown, $prop);
  				continue;
  			}
  
  			array_push($collect, $prop);
  		}
  
  		if (!empty($unknown)) {
  
  			throw new InvalidArgumentException(sprintf("Cannot add unknown %s to mutables collection ('%s').", (count($unknown) > 1) ? 'properties' : 'property', join("', '", $unknown)));
  			
  		}
  		
  		$this->mutables = array_merge(array_diff($this->mutables, $collect), $collect);
  		
  		return $this;
  	}
code: public function mutable($props)
  	{
  		$props = call_user_func_array(array($this, 'flattenArguments'), func_get_args()); 
  		$collect = $unknown = [];
  
  		foreach ($props as $prop) {
  			if (!property_exists(AbstractGenerator::class, $prop)) {
  				array_push($unknown, $prop);
  				continue;
  			}
  
  			array_push($collect, $prop);
  		}
  
  		if (!empty($unknown)) {
  
  			throw new InvalidArgumentException(sprintf("Cannot add unknown %s to mutables collection ('%s').", (count($unknown) > 1) ? 'properties' : 'property', join("', '", $unknown)));
  			
  		}
  		
  		$this->mutables = array_merge(array_diff($this->mutables, $collect), $collect);
  		
  		return $this;
  	}
code_tokens: public function mutable ( $ props ) { $ props = call_user_func_array ( array ( $ this , 'flattenArguments' ) , func_get_args ( ) ) ; $ collect = $ unknown = [ ] ; foreach ( $ props as $ prop ) { if ( ! property_exists ( AbstractGenerator :: class , $ prop ) ) { array_push ( $ unknown , $ prop ) ; continue ; } array_push ( $ collect , $ prop ) ; } if ( ! empty ( $ unknown ) ) { throw new InvalidArgumentException ( sprintf ( "Cannot add unknown %s to mutables collection ('%s')." , ( count ( $ unknown ) > 1 ) ? 'properties' : 'property' , join ( "', '" , $ unknown ) ) ) ; } $ this -> mutables = array_merge ( array_diff ( $ this -> mutables , $ collect ) , $ collect ) ; return $ this ; }
docstring: Add mutable attributes to the mutables collection
  
  @param mixed $props
  @return $this
  
  @throws \InvalidArgumentException
docstring_tokens: Add mutable attributes to the mutables collection