AssertFunctionTypeSpecifyingExtension.php
Namespace
PHPStan\Type\PHPUnit\AssertFile
-
vendor/
phpstan/ phpstan-phpunit/ src/ Type/ PHPUnit/ Assert/ AssertFunctionTypeSpecifyingExtension.php
View source
<?php
declare (strict_types=1);
namespace PHPStan\Type\PHPUnit\Assert;
use PhpParser\Node\Expr\FuncCall;
use PHPStan\Analyser\Scope;
use PHPStan\Analyser\SpecifiedTypes;
use PHPStan\Analyser\TypeSpecifier;
use PHPStan\Analyser\TypeSpecifierAwareExtension;
use PHPStan\Analyser\TypeSpecifierContext;
use PHPStan\Reflection\FunctionReflection;
use PHPStan\Type\FunctionTypeSpecifyingExtension;
use function strlen;
use function strpos;
use function substr;
class AssertFunctionTypeSpecifyingExtension implements FunctionTypeSpecifyingExtension, TypeSpecifierAwareExtension {
/** @var TypeSpecifier */
private $typeSpecifier;
public function setTypeSpecifier(TypeSpecifier $typeSpecifier) : void {
$this->typeSpecifier = $typeSpecifier;
}
public function isFunctionSupported(FunctionReflection $functionReflection, FuncCall $node, TypeSpecifierContext $context) : bool {
return AssertTypeSpecifyingExtensionHelper::isSupported($this->trimName($functionReflection->getName()), $node->getArgs());
}
public function specifyTypes(FunctionReflection $functionReflection, FuncCall $node, Scope $scope, TypeSpecifierContext $context) : SpecifiedTypes {
return AssertTypeSpecifyingExtensionHelper::specifyTypes($this->typeSpecifier, $scope, $this->trimName($functionReflection->getName()), $node->getArgs());
}
private function trimName(string $functionName) : string {
$prefix = 'PHPUnit\\Framework\\';
if (strpos($functionName, $prefix) === 0) {
return substr($functionName, strlen($prefix));
}
return $functionName;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
AssertFunctionTypeSpecifyingExtension |