Viewing file: ThrowableBuilder.php (1.35 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
declare(strict_types=1);
/* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace PHPUnit\Event\Code;
use NunoMaduro\Collision\Contracts\RenderableOnCollisionEditor; use PHPUnit\Event\NoPreviousThrowableException; use PHPUnit\Framework\Exception; use PHPUnit\Util\Filter; use PHPUnit\Util\ThrowableToStringMapper;
/** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class ThrowableBuilder { /** * @throws Exception * @throws NoPreviousThrowableException */ public static function from(\Throwable $t): Throwable { $previous = $t->getPrevious();
if ($previous !== null) { $previous = self::from($previous); }
$trace = Filter::getFilteredStacktrace($t);
if ($t instanceof RenderableOnCollisionEditor && $frame = $t->toCollisionEditor()) { $file = $frame->getFile(); $line = $frame->getLine();
$trace = "$file:$line\n$trace"; }
return new Throwable( $t::class, $t->getMessage(), ThrowableToStringMapper::map($t), $trace, $previous ); } }
|