From 761bb0464d39e301dbd8731e48b6563841a22dfa Mon Sep 17 00:00:00 2001 From: wuchen90 Date: Thu, 12 Dec 2024 09:19:12 +0100 Subject: [PATCH] [PropertyInfo] Add non-*-int missing types for PhpStanExtractor --- src/Symfony/Component/PropertyInfo/CHANGELOG.md | 5 +++++ .../Tests/Extractor/PhpStanExtractorTest.php | 3 +++ .../Tests/Fixtures/PhpStanPseudoTypesDummy.php | 9 +++++++++ .../Component/PropertyInfo/Util/PhpStanTypeHelper.php | 5 ++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/PropertyInfo/CHANGELOG.md b/src/Symfony/Component/PropertyInfo/CHANGELOG.md index 490dab43b4754..0ef7643e8e236 100644 --- a/src/Symfony/Component/PropertyInfo/CHANGELOG.md +++ b/src/Symfony/Component/PropertyInfo/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +7.3 +--- + + * Add support for `non-positive-int`, `non-negative-int` and `non-zero-int` PHPStan types to `PhpStanExtractor` + 7.1 --- diff --git a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php index 0d77497c2e1da..d2d847b12fe89 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php @@ -459,6 +459,9 @@ public static function provideLegacyPseudoTypes(): array ['literalString', [new LegacyType(LegacyType::BUILTIN_TYPE_STRING, false, null)]], ['positiveInt', [new LegacyType(LegacyType::BUILTIN_TYPE_INT, false, null)]], ['negativeInt', [new LegacyType(LegacyType::BUILTIN_TYPE_INT, false, null)]], + ['nonPositiveInt', [new LegacyType(LegacyType::BUILTIN_TYPE_INT, false, null)]], + ['nonNegativeInt', [new LegacyType(LegacyType::BUILTIN_TYPE_INT, false, null)]], + ['nonZeroInt', [new LegacyType(LegacyType::BUILTIN_TYPE_INT, false, null)]], ['nonEmptyArray', [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true)]], ['nonEmptyList', [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true, new LegacyType(LegacyType::BUILTIN_TYPE_INT))]], ['scalar', [new LegacyType(LegacyType::BUILTIN_TYPE_INT), new LegacyType(LegacyType::BUILTIN_TYPE_FLOAT), new LegacyType(LegacyType::BUILTIN_TYPE_STRING), new LegacyType(LegacyType::BUILTIN_TYPE_BOOL)]], diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PhpStanPseudoTypesDummy.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PhpStanPseudoTypesDummy.php index 06690f4b1fd6f..08349def1a8c1 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PhpStanPseudoTypesDummy.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/PhpStanPseudoTypesDummy.php @@ -19,6 +19,15 @@ class PhpStanPseudoTypesDummy extends PseudoTypesDummy /** @var negative-int */ public $negativeInt; + /** @var non-positive-int */ + public $nonPositiveInt; + + /** @var non-negative-int */ + public $nonNegativeInt; + + /** @var non-zero-int */ + public $nonZeroInt; + /** @var non-empty-array */ public $nonEmptyArray; diff --git a/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php b/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php index 69325f42ef6b3..a92ab2ca584d1 100644 --- a/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php +++ b/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php @@ -179,7 +179,10 @@ private function extractTypes(TypeNode $node, NameScope $nameScope): array return match ($node->name) { 'integer', 'positive-int', - 'negative-int' => [new Type(Type::BUILTIN_TYPE_INT)], + 'negative-int', + 'non-positive-int', + 'non-negative-int', + 'non-zero-int' => [new Type(Type::BUILTIN_TYPE_INT)], 'double' => [new Type(Type::BUILTIN_TYPE_FLOAT)], 'list', 'non-empty-list' => [new Type(Type::BUILTIN_TYPE_ARRAY, false, null, true, new Type(Type::BUILTIN_TYPE_INT))], pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy