Repository navigation
Conversation
fc82283 to
55d1b44
Compare
|
Rebased onto current 2.3.x and refreshed the Turbo pin; the 34 rule tests pass in both modes, along with the native build, smoke tests and signature parity. All twelve downstream failure diagnostic sets on the previous head also occur in the upstream pin-only PR #6696. New-head CI is running. |
55d1b44 to
d17834c
Compare
|
Refreshed the rebase after the new Turbo pin conflict, preserving the original fix and upstream commits. Full suites pass in both modes (22,457 tests each), with the rebuilt native version, smoke and signature parity verified. New-head CI is running. |
d17834c to
53e95f0
Compare
|
Rebased onto |
7e03794 to
6d6c93e
Compare
6d6c93e to
9a5a851
Compare
Fixes phpstan/phpstan#15394.
Variables used inside a
declareblock are currently reported as unread. The inverse is also missed: assignments inside the block disappear from unused-variable analysis, including a block overwriting a value assigned outside it.DeclareHandleralready processes the nested statements, but drops theirVariableFlowwhen returning the result. Forward that flow in both the PHP handler and its Turbo counterpart, leaving statement-only declarations unchanged. The separate native version bump follows the existing coupling requirement.The regression covers reads inside a block, writes read afterwards, nested and alternative-syntax blocks, real unused writes, overwritten outer values, and statement-only declarations. It fails before the fix with three false positives and both expected real diagnostics missing.
Validation:
UnusedVariableRuleTestcases pass.selfmismatch on the clean base and this branch; complete checker output is byte-identical. Those unrelated headers were not regenerated. Local clang-tidy 21 is unavailable; cross-platform and integration CI remain to be checked upstream.