Commit d98b140
Use catch type as assigned expression in VariableAssignNode for catch variables
The VariableAssignNode for catch variables was using the variable itself
as the assigned expression, which meant ParameterOutAssignedTypeRule
could not detect type mismatches when a catch variable overwrites a
by-ref parameter. Now uses TypeExpr wrapping the catch type so the
parameterByRef.type check works correctly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 398df87 commit d98b140
3 files changed
Lines changed: 38 additions & 1 deletion
File tree
- src/Analyser
- tests/PHPStan/Rules/Variables
- data
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1974 | 1974 | | |
1975 | 1975 | | |
1976 | 1976 | | |
1977 | | - | |
| 1977 | + | |
1978 | 1978 | | |
1979 | 1979 | | |
1980 | 1980 | | |
| |||
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
94 | 109 | | |
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
0 commit comments