diff --git a/src/Analyser/TypeSpecifier.php b/src/Analyser/TypeSpecifier.php index 3df7d26fb67..f56c3379e6a 100644 --- a/src/Analyser/TypeSpecifier.php +++ b/src/Analyser/TypeSpecifier.php @@ -251,15 +251,18 @@ public function specifyTypesInCondition( && isset($exprNode->getArgs()[0]) && $constantType instanceof ConstantStringType && $constantType->getValue() !== '' - && $scope->getType($exprNode->getArgs()[0]->value)->isString()->yes() ) { - return $this->create( - $exprNode->getArgs()[0]->value, - TypeCombinator::intersect($scope->getType($exprNode->getArgs()[0]->value), new AccessoryNonEmptyStringType()), - $context, - false, - $scope - ); + $argType = $scope->getType($exprNode->getArgs()[0]->value); + + if ($argType->isString()->yes() && !$argType->isNonEmptyString()->yes()) { + return $this->create( + $exprNode->getArgs()[0]->value, + TypeCombinator::intersect($argType, new AccessoryNonEmptyStringType()), + $context, + false, + $scope, + ); + } } }