From bbd9a68478abbc500b6398968cc85d0d1ae8d3eb Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Sun, 7 Jan 2024 13:29:23 +0100 Subject: [PATCH] Add `open-resource` type See https://github.com/phpstan/phpstan/issues/10399 --- src/PhpDoc/TypeNodeResolver.php | 1 + tests/PHPStan/Analyser/data/more-types.php | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/PhpDoc/TypeNodeResolver.php b/src/PhpDoc/TypeNodeResolver.php index edf89390d7..dfe513aaf4 100644 --- a/src/PhpDoc/TypeNodeResolver.php +++ b/src/PhpDoc/TypeNodeResolver.php @@ -358,6 +358,7 @@ private function resolveIdentifierTypeNode(IdentifierTypeNode $typeNode, NameSco return new ResourceType(); + case 'open-resource': case 'closed-resource': return new ResourceType(); diff --git a/tests/PHPStan/Analyser/data/more-types.php b/tests/PHPStan/Analyser/data/more-types.php index 33581a6272..9f646300c9 100644 --- a/tests/PHPStan/Analyser/data/more-types.php +++ b/tests/PHPStan/Analyser/data/more-types.php @@ -11,6 +11,7 @@ class Foo * @param pure-callable $pureCallable * @param callable-array $callableArray * @param closed-resource $closedResource + * @param open-resource $openResource * @param enum-string $enumString * @param non-empty-literal-string $nonEmptyLiteralString * @param non-empty-scalar $nonEmptyScalar @@ -21,6 +22,7 @@ public function doFoo( $pureCallable, $callableArray, $closedResource, + $openResource, $enumString, $nonEmptyLiteralString, $nonEmptyScalar, @@ -31,6 +33,7 @@ public function doFoo( assertType('callable(): mixed', $pureCallable); assertType('array&callable(): mixed', $callableArray); assertType('resource', $closedResource); + assertType('resource', $openResource); assertType('class-string', $enumString); assertType('literal-string&non-empty-string', $nonEmptyLiteralString); assertType('float|int|int<1, max>|non-falsy-string|true', $nonEmptyScalar);