From 5254b7501e12030818924fe3c0c86924d9e5cf5a Mon Sep 17 00:00:00 2001 From: Brown Date: Fri, 9 Aug 2019 12:55:33 -0400 Subject: [PATCH] Fix #1996 - detect unused variable in static property name --- .../Assignment/PropertyAssignmentAnalyzer.php | 4 ++++ tests/UnusedVariableTest.php | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/PropertyAssignmentAnalyzer.php b/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/PropertyAssignmentAnalyzer.php index a5bc54e7dcb..8304a0e8c71 100644 --- a/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/PropertyAssignmentAnalyzer.php +++ b/src/Psalm/Internal/Analyzer/Statements/Expression/Assignment/PropertyAssignmentAnalyzer.php @@ -992,6 +992,10 @@ public static function analyzeStatic( $prop_name = $stmt->name; if (!$prop_name instanceof PhpParser\Node\Identifier) { + if (ExpressionAnalyzer::analyze($statements_analyzer, $prop_name, $context) === false) { + return false; + } + if ($fq_class_name && !$context->ignore_variable_property) { $codebase->analyzer->addMixedMemberName( strtolower($fq_class_name) . '::$', diff --git a/tests/UnusedVariableTest.php b/tests/UnusedVariableTest.php index 5c64e6ad8d1..3a891d50b77 100644 --- a/tests/UnusedVariableTest.php +++ b/tests/UnusedVariableTest.php @@ -1020,6 +1020,20 @@ function foo() : void { A::$method(); }', ], + 'usedAsStaticPropertyName' => [ + '