mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-12 14:12:23 +00:00
ce3c134b0d
a5051ff311
Bump to PHPStan ^1.9.0 (#3033)
32 lines
1.1 KiB
PHP
32 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\Core\PHPStan\Reflection\TypeToCallReflectionResolver;
|
|
|
|
use PHPStan\Analyser\Scope;
|
|
use PHPStan\Reflection\Native\NativeFunctionReflection;
|
|
use PHPStan\Reflection\ParametersAcceptorWithPhpDocs;
|
|
use PHPStan\TrinaryLogic;
|
|
use PHPStan\Type\ClosureType;
|
|
use PHPStan\Type\Type;
|
|
use Rector\Core\Contract\PHPStan\Reflection\TypeToCallReflectionResolver\TypeToCallReflectionResolverInterface;
|
|
/**
|
|
* @implements TypeToCallReflectionResolverInterface<ClosureType>
|
|
*/
|
|
final class ClosureTypeToCallReflectionResolver implements TypeToCallReflectionResolverInterface
|
|
{
|
|
public function supports(Type $type) : bool
|
|
{
|
|
return $type instanceof ClosureType;
|
|
}
|
|
/**
|
|
* @param ClosureType $type
|
|
*/
|
|
public function resolve(Type $type, Scope $scope) : NativeFunctionReflection
|
|
{
|
|
/** @var ParametersAcceptorWithPhpDocs[] $parametersAcceptors */
|
|
$parametersAcceptors = $type->getCallableParametersAcceptors($scope);
|
|
return new NativeFunctionReflection('{closure}', $parametersAcceptors, null, TrinaryLogic::createMaybe(), \false);
|
|
}
|
|
}
|