Commit 7efb94b
Do not carry forward method call types into closure scope
Objects are always references in PHP, even when captured by value via
`use`. Method return values can change if object state changes between
closure definition and invocation. Skip MethodCall expressions (in
addition to PropertyFetch) when entering closure scope.
Add regression test for method call narrowing with getter/setter pattern.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 89f6e93 commit 7efb94b
2 files changed
Lines changed: 30 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2152 | 2152 | | |
2153 | 2153 | | |
2154 | 2154 | | |
2155 | | - | |
| 2155 | + | |
2156 | 2156 | | |
2157 | 2157 | | |
2158 | 2158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
0 commit comments