original_string: protected function getCallbackReflection($callback) {
  		if (is_string($callback) && strpos($callback, '::') !== false) {
  			$callback = explode('::', $callback, 2);
  		}
  		switch (true) {
  			case is_string($callback) && function_exists($callback):
  			case $callback instanceof \Closure:
  				$reflection_method = new \ReflectionFunction($callback);
  				break;
  			case is_object($callback) && method_exists($callback, '__invoke'):
  				$callback = array($callback, '__invoke');
  			case is_array($callback):
  				$reflection_method = new \ReflectionMethod($callback[0], $callback[1]);
  				break;
  		// @codeCoverageIgnoreStart
  			default:
  				throw new \LogicException('Found something callable that we can\'t reflect');
  
  		}
  		// @codeCoverageIgnoreEnd
  		return $reflection_method;
  	}
code: protected function getCallbackReflection($callback) {
  		if (is_string($callback) && strpos($callback, '::') !== false) {
  			$callback = explode('::', $callback, 2);
  		}
  		switch (true) {
  			case is_string($callback) && function_exists($callback):
  			case $callback instanceof \Closure:
  				$reflection_method = new \ReflectionFunction($callback);
  				break;
  			case is_object($callback) && method_exists($callback, '__invoke'):
  				$callback = array($callback, '__invoke');
  			case is_array($callback):
  				$reflection_method = new \ReflectionMethod($callback[0], $callback[1]);
  				break;
  		// @codeCoverageIgnoreStart
  			default:
  				throw new \LogicException('Found something callable that we can\'t reflect');
  
  		}
  		// @codeCoverageIgnoreEnd
  		return $reflection_method;
  	}
code_tokens: protected function getCallbackReflection ( $ callback ) { if ( is_string ( $ callback ) && strpos ( $ callback , '::' ) !== false ) { $ callback = explode ( '::' , $ callback , 2 ) ; } switch ( true ) { case is_string ( $ callback ) && function_exists ( $ callback ) : case $ callback instanceof \ Closure : $ reflection_method = new \ ReflectionFunction ( $ callback ) ; break ; case is_object ( $ callback ) && method_exists ( $ callback , '__invoke' ) : $ callback = array ( $ callback , '__invoke' ) ; case is_array ( $ callback ) : $ reflection_method = new \ ReflectionMethod ( $ callback [ 0 ] , $ callback [ 1 ] ) ; break ; // @codeCoverageIgnoreStart default : throw new \ LogicException ( 'Found something callable that we can\'t reflect' ) ; } // @codeCoverageIgnoreEnd return $ reflection_method ; }
docstring: Returns the reflection instance based on the type of the provided callable
  
  @param callable $callback
  
  @return \ReflectionFunction|\ReflectionMethod
  @throws InvalidCallbackException
docstring_tokens: Returns the reflection instance based on the type of the provided callable