From 08e5315e247cccd7723de7aba66112901e20d84f Mon Sep 17 00:00:00 2001 From: AndrolGenhald Date: Mon, 24 Jan 2022 13:59:11 -0600 Subject: [PATCH] Fixes after rebasing. --- config.xsd | 1 - docs/running_psalm/issues.md | 3 +++ .../Statements/Expression/ClassConstAnalyzer.php | 8 ++------ src/Psalm/Type/Atomic/TList.php | 1 - tests/ConstantTest.php | 14 +++++++------- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/config.xsd b/config.xsd index 97e5401e1f9..634b3de26a1 100644 --- a/config.xsd +++ b/config.xsd @@ -410,7 +410,6 @@ - diff --git a/docs/running_psalm/issues.md b/docs/running_psalm/issues.md index dca69c9dda2..a57d76b9e4f 100644 --- a/docs/running_psalm/issues.md +++ b/docs/running_psalm/issues.md @@ -2,6 +2,7 @@ - [AbstractInstantiation](issues/AbstractInstantiation.md) - [AbstractMethodCall](issues/AbstractMethodCall.md) + - [AmbiguousConstantInheritance](issues/AmbiguousConstantInheritance.md) - [ArgumentTypeCoercion](issues/ArgumentTypeCoercion.md) - [AssignmentToVoid](issues/AssignmentToVoid.md) - [CircularReference](issues/CircularReference.md) @@ -93,6 +94,7 @@ - [InvalidToString](issues/InvalidToString.md) - [InvalidTraversableImplementation](issues/InvalidTraversableImplementation.md) - [InvalidTypeImport](issues/InvalidTypeImport.md) + - [LessSpecificClassConstantType](issues/LessSpecificClassConstantType.md) - [LessSpecificImplementedReturnType](issues/LessSpecificImplementedReturnType.md) - [LessSpecificReturnStatement](issues/LessSpecificReturnStatement.md) - [LessSpecificReturnType](issues/LessSpecificReturnType.md) @@ -153,6 +155,7 @@ - [NullPropertyAssignment](issues/NullPropertyAssignment.md) - [NullPropertyFetch](issues/NullPropertyFetch.md) - [NullReference](issues/NullReference.md) + - [OverriddenInterfaceConstant](issues/OverriddenInterfaceConstant.md) - [OverriddenMethodAccess](issues/OverriddenMethodAccess.md) - [OverriddenPropertyAccess](issues/OverriddenPropertyAccess.md) - [ParadoxicalCondition](issues/ParadoxicalCondition.md) diff --git a/src/Psalm/Internal/Analyzer/Statements/Expression/ClassConstAnalyzer.php b/src/Psalm/Internal/Analyzer/Statements/Expression/ClassConstAnalyzer.php index c924a776595..958c144f95b 100644 --- a/src/Psalm/Internal/Analyzer/Statements/Expression/ClassConstAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/Statements/Expression/ClassConstAnalyzer.php @@ -722,15 +722,14 @@ public static function analyze( ): void { foreach ($class_storage->constants as $const_name => $const_storage) { // Check covariance - /** @psalm-suppress PossiblyNullArrayAccess https://github.com/vimeo/psalm/issues/7151 */ [$parent_classlike_storage, $parent_const_storage] = self::getOverriddenConstant( $class_storage, $const_storage, $const_name, $codebase ); - /** @psalm-suppress RedundantConditionGivenDocblockType https://github.com/vimeo/psalm/issues/7151 */ if ($parent_const_storage !== null) { + assert($parent_classlike_storage !== null); $location = $const_storage->type_location ?? $const_storage->stmt_location; if ($location !== null && $const_storage->type !== null @@ -776,10 +775,7 @@ private static function getOverriddenConstant( if ($parent_const_storage !== null) { if ($const_storage->location && $const_storage !== $parent_const_storage - && ( - $codebase->php_major_version < 8 - || ($codebase->php_major_version === 8 && $codebase->php_minor_version < 1) - ) + && $codebase->analysis_php_version_id < 8_01_00 ) { $interface_overrides[strtolower($interface)] = new OverriddenInterfaceConstant( "{$class_storage->name}::{$const_name} cannot override constant from $interface", diff --git a/src/Psalm/Type/Atomic/TList.php b/src/Psalm/Type/Atomic/TList.php index 80861e16e70..44d6578ee41 100644 --- a/src/Psalm/Type/Atomic/TList.php +++ b/src/Psalm/Type/Atomic/TList.php @@ -39,7 +39,6 @@ public function __construct(Union $type_param) public function getId(bool $exact = true, bool $nested = false): string { - /** @psalm-suppress MixedOperand */ return static::KEY . '<' . $this->type_param->getId($exact) . '>'; } diff --git a/tests/ConstantTest.php b/tests/ConstantTest.php index b3a6991cd62..e86dc1ffa32 100644 --- a/tests/ConstantTest.php +++ b/tests/ConstantTest.php @@ -1328,7 +1328,7 @@ function foo(array $arg): void {} ', ], 'classConstCovariant' => [ - ' ' [ - ' ' [ - ' ' "InvalidConstantAssignmentValue", ], 'classConstContravariant' => [ - ' ' "LessSpecificClassConstantType", ], 'classConstAmbiguousInherit' => [ - ' ' 'AmbiguousConstantInheritance', ], 'overrideClassConstFromInterface' => [ - ' ' 'OverriddenInterfaceConstant', ], 'overrideClassConstFromInterfaceWithInterface' => [ - ' '