diff --git a/src/Psalm/Internal/Analyzer/ClassAnalyzer.php b/src/Psalm/Internal/Analyzer/ClassAnalyzer.php index ea2f67f541d..36e5f864b2f 100644 --- a/src/Psalm/Internal/Analyzer/ClassAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/ClassAnalyzer.php @@ -119,7 +119,7 @@ public function analyze( if ($class->name && (preg_match( - '/(^|\\\)(int|float|bool|string|void|null|false|true|object|numeric|mixed)$/i', + '/(^|\\\)(int|float|bool|string|void|null|false|true|object|mixed)$/i', $fq_class_name ) || strtolower($fq_class_name) === 'resource') ) { diff --git a/src/Psalm/Internal/Analyzer/ClassLikeAnalyzer.php b/src/Psalm/Internal/Analyzer/ClassLikeAnalyzer.php index d206d8db760..fc186702692 100644 --- a/src/Psalm/Internal/Analyzer/ClassLikeAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/ClassLikeAnalyzer.php @@ -240,7 +240,7 @@ public static function checkFullyQualifiedClassLikeName( } if (preg_match( - '/(^|\\\)(int|float|bool|string|void|null|false|true|object|numeric|mixed)$/i', + '/(^|\\\)(int|float|bool|string|void|null|false|true|object|mixed)$/i', $fq_class_name ) || strtolower($fq_class_name) === 'resource' ) { diff --git a/src/Psalm/Type.php b/src/Psalm/Type.php index b07215518cf..212451a2317 100644 --- a/src/Psalm/Type.php +++ b/src/Psalm/Type.php @@ -206,7 +206,6 @@ private static function fixScalarTerms( case 'iterable': case 'array': case 'object': - case 'numeric': case 'true': case 'false': case 'null': diff --git a/tests/ClassTest.php b/tests/ClassTest.php index 5eb32c24f54..aedb6db348d 100644 --- a/tests/ClassTest.php +++ b/tests/ClassTest.php @@ -466,6 +466,31 @@ class OldAChild extends OldA {} action(new OldA()); action(new OldAChild());' ], + 'resourceAndNumericSoftlyReserved' => [ + '