Assert::nullOrStringNotEmpty() with string|null will always evaluate to true
luca-rath opened this issue · 4 comments
Hello,
public function foo(?string $bar)
{
Assert::nullOrStringNotEmpty($bar);
}The above example leads to the following error:
Call to static method Webmozart\Assert\Mixin::nullOrStringNotEmpty() with string|null will always evaluate to true.
The problem is, that it's totally possible for $bar to be an empty string.
Unfortunately I can't provide a playground example, because Webmozart\Assert can't be used there.
I can confirm this with these dependencies:
phpstan/phpstan 0.12.92 PHPStan - PHP Static Analysis Tooln
phpstan/phpstan-webmozart-assert 0.12.15 PHPStan webmozart/assert extension
webmozart/assert 1.10.0 Assertions to validate method input/output with nice error messages.
Should be fixed in PHPStan core. Once this is fixed, this starts working automatically as well: https://phpstan.org/r/f23ca7f4-0c82-487a-8858-384e8abad8cd
@herndlm @ondrejmirtes Thank you for fixing this issue! 🙂
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.