File tree Expand file tree Collapse file tree 3 files changed +10
-3
lines changed Expand file tree Collapse file tree 3 files changed +10
-3
lines changed Original file line number Diff line number Diff line change 7
7
use PhpParser \Node ;
8
8
use PhpParser \Node \Expr \Assign ;
9
9
use PhpParser \Node \Expr \AssignOp ;
10
+ use PhpParser \Node \Expr \AssignRef ;
10
11
use PhpParser \Node \FunctionLike ;
11
12
use PhpParser \NodeVisitor \FindingVisitor ;
12
13
use PhpParser \Node \Stmt \Class_ ;
@@ -31,8 +32,10 @@ public function enterNode(Node $node) {
31
32
// Record class name
32
33
$ this ->currentNamespace = $ node ->name ? $ node ->name ->name : null ;
33
34
}
34
-
35
- if ($ node instanceof Assign || $ node instanceof AssignOp) {
35
+ if ($ node instanceof Assign ||
36
+ $ node instanceof AssignOp ||
37
+ $ node instanceof AssignRef
38
+ ) {
36
39
$ node ->var ->setAttribute ('assigned ' , true ); // Mark as assigned
37
40
}
38
41
if ($ node instanceof FunctionLike) {
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ public function testParseAssignOperator(): void
107
107
$ functions = $ result ->functions ;
108
108
$ this ->assertCount (1 , $ functions );
109
109
$ this ->assertSame ('assignFunction ' , $ functions [0 ]->name );
110
- $ this ->assertCount (14 , $ functions [0 ]->getVariables ());
110
+ $ this ->assertCount (15 , $ functions [0 ]->getVariables ());
111
111
112
112
$ vars = $ functions [0 ]->getVariables ();
113
113
$ this ->assertSame ('num ' , $ vars [0 ]->name );
@@ -152,6 +152,9 @@ public function testParseAssignOperator(): void
152
152
$ this ->assertSame ('num ' , $ vars [13 ]->name );
153
153
$ this ->assertSame (18 , $ vars [13 ]->lineNumber );
154
154
$ this ->assertSame (true , $ vars [13 ]->assigned );
155
+ $ this ->assertSame ('num ' , $ vars [14 ]->name );
156
+ $ this ->assertSame (19 , $ vars [14 ]->lineNumber );
157
+ $ this ->assertSame (true , $ vars [14 ]->assigned );
155
158
}
156
159
157
160
public function testInterpolatedStringFunction (): void
Original file line number Diff line number Diff line change @@ -16,4 +16,5 @@ function assignFunction(): void
16
16
$ num >>= 1 ; // 16行目
17
17
$ num .= 1 ; // 17行目
18
18
$ num ??= 1 ; // 18行目
19
+ $ num =& f (); // 19行目
19
20
}
You can’t perform that action at this time.
0 commit comments