diff --git a/src/Analysis/Relations/InheritanceResolver.php b/src/Analysis/Relations/InheritanceResolver.php index 78dea125a7707547873d2570c20483741f89c84a..7116a3798c53c21c484301991067d835e3d6f1d8 100644 --- a/src/Analysis/Relations/InheritanceResolver.php +++ b/src/Analysis/Relations/InheritanceResolver.php @@ -17,11 +17,11 @@ final class InheritanceResolver extends AbstractResolver */ public function resolveInheritanceOf(ArrayObject $parent, ArrayObject $class): void { - if (!$class['shortDescription']) { + if ($class['shortDescription'] === '' || $class['shortDescription'] === null) { $class['shortDescription'] = $parent['shortDescription']; } - if (!$class['longDescription']) { + if ($class['longDescription'] === '' || $class['longDescription'] === null) { $class['longDescription'] = $parent['longDescription']; } elseif ($class['longDescription'] !== null && $parent['longDescription'] !== null) { $class['longDescription'] = $this->resolveInheritDoc($class['longDescription'], $parent['longDescription']); diff --git a/src/Autocompletion/FunctionAutocompletionSuggestionLabelCreator.php b/src/Autocompletion/FunctionAutocompletionSuggestionLabelCreator.php index 68135879a458cd87fd649408b7b934c481780f01..d5fbf38145f4e1a0c1859115ed5bcdf6fca2d18f 100644 --- a/src/Autocompletion/FunctionAutocompletionSuggestionLabelCreator.php +++ b/src/Autocompletion/FunctionAutocompletionSuggestionLabelCreator.php @@ -39,7 +39,7 @@ final class FunctionAutocompletionSuggestionLabelCreator $description .= '$' . $param['name']; - if ($param['defaultValue']) { + if ($param['defaultValue'] !== '' && $param['defaultValue'] !== null) { $description .= ' = ' . $param['defaultValue']; } diff --git a/src/Indexing/Visiting/ClasslikeIndexingVisitor.php b/src/Indexing/Visiting/ClasslikeIndexingVisitor.php index 1ec8f8387bc9f5af6d68dda40ba098b081a20c58..8d388080399a4bd29d00163de706fd62315f4b02 100644 --- a/src/Indexing/Visiting/ClasslikeIndexingVisitor.php +++ b/src/Indexing/Visiting/ClasslikeIndexingVisitor.php @@ -647,7 +647,7 @@ final class ClasslikeIndexingVisitor extends NodeVisitorAbstract } $typeStringSpecification = $varDocumentation['type']; - } elseif ($property->default) { + } elseif ($property->default !== '' && $property->default !== null) { $typeList = $this->nodeTypeDeducer->deduce(new TypeDeductionContext( $property->default, $this->textDocumentItem diff --git a/src/Parsing/DocblockParser.php b/src/Parsing/DocblockParser.php index 74f2186c49e844740873aac55aab76a45c4055e2..ff3bb567330ba2c815aafaf2e3c556d2a08684bd 100644 --- a/src/Parsing/DocblockParser.php +++ b/src/Parsing/DocblockParser.php @@ -680,7 +680,7 @@ class DocblockParser 'defaultValue' => $defaultValue, ]; - if (!$defaultValue) { + if ($defaultValue === '' || $defaultValue === null) { $requiredParameters[$parameterName] = $data; } else { $optionalParameters[$parameterName] = $data; diff --git a/src/Tooltips/ClassLikeTooltipGenerator.php b/src/Tooltips/ClassLikeTooltipGenerator.php index 001fade38c4d0f61df9375409f5197a78af85f1f..6dd2bb5ec65b924d01d3c2c54a4ca28a51c5ee80 100644 --- a/src/Tooltips/ClassLikeTooltipGenerator.php +++ b/src/Tooltips/ClassLikeTooltipGenerator.php @@ -33,7 +33,7 @@ class ClassLikeTooltipGenerator */ private function generateSummary(array $info): string { - if ($info['shortDescription']) { + if ($info['shortDescription'] !== '' && $info['shortDescription'] !== null) { return $info['shortDescription']; } diff --git a/src/Tooltips/ConstantTooltipGenerator.php b/src/Tooltips/ConstantTooltipGenerator.php index 2890c4134e281be1cdf46a04eb9962d9adf9f869..fde79f500dc038efadbc76786cb935d25f4ef648 100644 --- a/src/Tooltips/ConstantTooltipGenerator.php +++ b/src/Tooltips/ConstantTooltipGenerator.php @@ -43,7 +43,7 @@ class ConstantTooltipGenerator */ private function generateSummary(array $info): string { - if ($info['shortDescription']) { + if ($info['shortDescription'] !== '' && $info['shortDescription'] !== null) { return $info['shortDescription']; } @@ -80,7 +80,7 @@ class ConstantTooltipGenerator $returnDescription = '*' . $value . '*'; - if ($info['typeDescription']) { + if ($info['typeDescription'] !== '' && $info['typeDescription'] !== null) { $returnDescription .= ' — ' . $info['typeDescription']; } } else { diff --git a/src/Tooltips/FunctionTooltipGenerator.php b/src/Tooltips/FunctionTooltipGenerator.php index 5dfb158edc8840ad2b5b4a52d58520344ca9d236..eeb04adb2e4009903dab5750c86258a8e8321b34 100644 --- a/src/Tooltips/FunctionTooltipGenerator.php +++ b/src/Tooltips/FunctionTooltipGenerator.php @@ -58,7 +58,7 @@ class FunctionTooltipGenerator */ private function generateSummary(array $functionInfo): string { - if ($functionInfo['shortDescription']) { + if ($functionInfo['shortDescription'] !== '' && $functionInfo['shortDescription'] !== null) { return $functionInfo['shortDescription']; } @@ -130,7 +130,7 @@ class FunctionTooltipGenerator $text .= "\n"; - if ($parameter['description']) { + if ($parameter['description'] !== '' &&$parameter['description'] !== null) { $text .= ($parameter['description']); } else { $text .= '(No documentation available)'; @@ -155,7 +155,7 @@ class FunctionTooltipGenerator $returnDescription = '*' . $value . '*'; - if ($functionInfo['returnDescription']) { + if ($functionInfo['returnDescription'] !== '' && $functionInfo['returnDescription'] !== null) { $returnDescription .= ' — ' . $functionInfo['returnDescription']; } } else { @@ -179,7 +179,7 @@ class FunctionTooltipGenerator $text = "#### • **{$type}**\n"; - if ($throwsItem['description']) { + if ($throwsItem['description'] !== '' && $throwsItem['description'] !== null) { $text .= $throwsItem['description']; } else { $text .= '(No context available)'; diff --git a/src/Tooltips/PropertyTooltipGenerator.php b/src/Tooltips/PropertyTooltipGenerator.php index e5564be20a49fb615883e35a593d7ab8a9e1fbb5..c1e251d813a954ca72f94948e58428ff0f4a349d 100644 --- a/src/Tooltips/PropertyTooltipGenerator.php +++ b/src/Tooltips/PropertyTooltipGenerator.php @@ -43,7 +43,7 @@ class PropertyTooltipGenerator */ private function generateSummary(array $info): string { - if ($info['shortDescription']) { + if ($info['shortDescription'] !== '' && $info['shortDescription'] !== null) { return $info['shortDescription']; } @@ -80,7 +80,7 @@ class PropertyTooltipGenerator $returnDescription = '*' . $value . '*'; - if ($info['typeDescription']) { + if ($info['typeDescription'] !== '' && $info['typeDescription'] !== null) { $returnDescription .= ' — ' . $info['typeDescription']; } } else { diff --git a/tests/Integration/Autocompletion/Providers/FunctionAutocompletionProviderTest.php b/tests/Integration/Autocompletion/Providers/FunctionAutocompletionProviderTest.php index 6eb5330d722ddd0c1e91d704b2618216f04b55a0..5f9ea5f588f396f782b3d625f68378e4bc611072 100644 --- a/tests/Integration/Autocompletion/Providers/FunctionAutocompletionProviderTest.php +++ b/tests/Integration/Autocompletion/Providers/FunctionAutocompletionProviderTest.php @@ -159,7 +159,7 @@ class FunctionAutocompletionProviderTest extends AbstractAutocompletionProviderT ), 'foo()$0' ), - 'foo([$i])', + 'foo([$i = 0])', null, [ 'returnTypes' => 'mixed', diff --git a/tests/Integration/Autocompletion/Providers/NonStaticMethodAutocompletionProviderTest.php b/tests/Integration/Autocompletion/Providers/NonStaticMethodAutocompletionProviderTest.php index cee29e5868b26f419fbaf071bc5d35f48233f65f..2c86eb1040b4468fd9abc30282ebed47688d8d90 100644 --- a/tests/Integration/Autocompletion/Providers/NonStaticMethodAutocompletionProviderTest.php +++ b/tests/Integration/Autocompletion/Providers/NonStaticMethodAutocompletionProviderTest.php @@ -177,7 +177,7 @@ class NonStaticMethodAutocompletionProviderTest extends AbstractAutocompletionPr ), 'foo()$0' ), - 'foo([$i])', + 'foo([$i = 0])', null, [ 'protectionLevel' => 'public', diff --git a/tests/Integration/Autocompletion/Providers/StaticMethodAutocompletionProviderTest.php b/tests/Integration/Autocompletion/Providers/StaticMethodAutocompletionProviderTest.php index 1d3ea8ec7791da737641c15208a28d123e2f53aa..70123563ea487a98a141f1fe44e0e6021aaf403a 100644 --- a/tests/Integration/Autocompletion/Providers/StaticMethodAutocompletionProviderTest.php +++ b/tests/Integration/Autocompletion/Providers/StaticMethodAutocompletionProviderTest.php @@ -177,7 +177,7 @@ class StaticMethodAutocompletionProviderTest extends AbstractAutocompletionProvi ), 'foo()$0' ), - 'foo([$i])', + 'foo([$i = 0])', null, [ 'protectionLevel' => 'public',