Skip to content

Commit fcb8fe6

Browse files
committed
DocBlock/Tags/Source: remove redundant code
PHPStan flags the code within the `Source::__toString()` method: ``` ------ ------------------------------------------------------------------------------------------- Line DocBlock\Tags\Source.php ------ ------------------------------------------------------------------------------------------- 111 Result of || is always true. 114 Result of || is always true. 114 Result of || is always true. ------ ------------------------------------------------------------------------------------------- ``` I have investigated this and can confirm that these flags are correct. 1. `$this->startingLine` is cast to an integer in the `__construct()` method (line 45) and subsequently cast to a string in `__toString()` (line 105). This means that it can only ever be a non-empty ("truthy") string or the string '0', so the `$startingLine || $startingLine === '0'` condition used in two places is redundant. 2. `$this->lineCount` is either an integer or `null` after the `__construct()` method (line 46). In the `__toString()` method, if the `lineCount` is an integer, it is effectively cast to a string by the concatenation with an empty string on line 107, while if the `lineCount` was `null`, it is turned into an empty string. By changing the concatenation from concatenating with an empty string to concatenating with a one-space string, we can remove the ternary in the `return` statement checking for `$lineCount` being empty. The existing unit tests already cover this code and still pass after this change.
1 parent 8719cc1 commit fcb8fe6

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/DocBlock/Tags/Source.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,12 @@ public function __toString() : string
104104

105105
$startingLine = (string) $this->startingLine;
106106

107-
$lineCount = $this->lineCount !== null ? '' . $this->lineCount : '';
107+
$lineCount = $this->lineCount !== null ? ' ' . $this->lineCount : '';
108108

109109
return $startingLine
110-
. ($lineCount !== ''
111-
? ($startingLine || $startingLine === '0' ? ' ' : '') . $lineCount
112-
: '')
110+
. $lineCount
113111
. ($description !== ''
114-
? ($startingLine || $startingLine === '0' || $lineCount !== '' ? ' ' : '') . $description
112+
? ' ' . $description
115113
: '');
116114
}
117115
}

0 commit comments

Comments
 (0)