diff --git a/src/error/PhutilErrorHandler.php b/src/error/PhutilErrorHandler.php --- a/src/error/PhutilErrorHandler.php +++ b/src/error/PhutilErrorHandler.php @@ -81,11 +81,11 @@ * can use @{class:PhutilProxyException} to nest exceptions; after PHP 5.3 * all exceptions are nestable. * - * @param Exception Exception to unnest. - * @return Exception|null Previous exception, if one exists. + * @param Exception|Throwable Exception to unnest. + * @return Exception|Throwable|null Previous exception, if one exists. * @task exutil */ - public static function getPreviousException(Exception $ex) { + public static function getPreviousException($ex) { if (method_exists($ex, 'getPrevious')) { return $ex->getPrevious(); } @@ -99,11 +99,11 @@ /** * Find the most deeply nested exception from a possibly-nested exception. * - * @param Exception A possibly-nested exception. - * @return Exception Deepest exception in the nest. + * @param Exception|Throwable A possibly-nested exception. + * @return Exception|Throwable Deepest exception in the nest. * @task exutil */ - public static function getRootException(Exception $ex) { + public static function getRootException($ex) { $root = $ex; while (self::getPreviousException($root)) { $root = self::getPreviousException($root); @@ -240,11 +240,11 @@ * ##set_exception_handler()##. You should not call this function directly; * to print exceptions, pass the exception object to @{function:phlog}. * - * @param Exception Uncaught exception object. + * @param Exception|Throwable Uncaught exception object. * @return void * @task internal */ - public static function handleException(Exception $ex) { + public static function handleException($ex) { self::dispatchErrorMessage( self::EXCEPTION, $ex, @@ -529,10 +529,10 @@ * all of the places an exception came from, even if it came from multiple * origins and has been aggregated or proxied. * - * @param Exception Exception to retrieve a trace for. + * @param Exception|Throwable Exception to retrieve a trace for. * @return list List of stack frames. */ - public static function getExceptionTrace(Exception $ex) { + public static function getExceptionTrace($ex) { $id = 1; // Keep track of discovered exceptions which we need to build traces for. diff --git a/src/parser/xhpast/api/__tests__/XHPASTTreeTestCase.php b/src/parser/xhpast/api/__tests__/XHPASTTreeTestCase.php --- a/src/parser/xhpast/api/__tests__/XHPASTTreeTestCase.php +++ b/src/parser/xhpast/api/__tests__/XHPASTTreeTestCase.php @@ -47,7 +47,8 @@ // Octal $this->assertEval(010, '010'); - $this->assertEval(080, '080'); // Invalid! + // TODO: this passes on < PHP 7 for some reason but fails on PHP 7 correctly + //$this->assertEval(080, '080'); // Invalid! // Leading 0, but float, not octal. $this->assertEval(0.11e1, '0.11e1');