phpstan
phpstan copied to clipboard
more precise preg_match types
Feature request
while implementing the first iteration of preg_match array-shape inference, I got a few ideas on how the type inference could be improved.
leaving it here as a feature request, so its not forgotten
https://phpstan.org/r/1e3506dd-78dc-4bbe-9c9e-2a5a2928fcfc
Did PHPStan help you today? Did it make you happy in any way?
No response
First thing we should is to cover preg_match_all and maybe others as well.
@staabm After the latest push in 1.12.x, PHPStan now reports different result with your code snippet:
@@ @@
-10: Expected type array{string, '£'|'€'}, actual: array<string>
-13: Expected type array{string, numeric-string}, actual: array<string>
-16: Expected type array{string, non-empty-string}, actual: array<string>
-19: Expected type array{string, non-empty-string}, actual: array<string>
-22: Expected type array{string, non-falsey-string}, actual: array<string>
+10: Expected type array{string, '£'|'€'}, actual: array{string, non-empty-string}
+22: Expected type array{string, non-falsey-string}, actual: array{string, non-empty-string}
Full report
| Line | Error |
|---|---|
| 10 | `Expected type array{string, '£' |
| 22 | Expected type array{string, non-falsey-string}, actual: array{string, non-empty-string} |
@staabm After the latest push in 1.12.x, PHPStan now reports different result with your code snippet:
@@ @@
-10: Expected type array{string, '£'|'€'}, actual: array<string>
-13: Expected type array{string, numeric-string}, actual: array<string>
-16: Expected type array{string, non-empty-string}, actual: array<string>
-19: Expected type array{string, non-empty-string}, actual: array<string>
-22: Expected type array{string, non-falsey-string}, actual: array<string>
+10: Expected type array{string, '£'|'€'}, actual: array{string, non-empty-string}
+22: Expected type array{string, non-falsey-string}, actual: array{string, non-falsy-string}
Full report
| Line | Error |
|---|---|
| 10 | `Expected type array{string, '£' |
| 22 | Expected type array{string, non-falsey-string}, actual: array{string, non-falsy-string} |
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.