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 77use PhpParser \Node ;
88use PhpParser \Node \Expr \Assign ;
99use PhpParser \Node \Expr \AssignOp ;
10+ use PhpParser \Node \Expr \AssignRef ;
1011use PhpParser \Node \FunctionLike ;
1112use PhpParser \NodeVisitor \FindingVisitor ;
1213use PhpParser \Node \Stmt \Class_ ;
@@ -31,8 +32,10 @@ public function enterNode(Node $node) {
3132 // Record class name
3233 $ this ->currentNamespace = $ node ->name ? $ node ->name ->name : null ;
3334 }
34-
35- if ($ node instanceof Assign || $ node instanceof AssignOp) {
35+ if ($ node instanceof Assign ||
36+ $ node instanceof AssignOp ||
37+ $ node instanceof AssignRef
38+ ) {
3639 $ node ->var ->setAttribute ('assigned ' , true ); // Mark as assigned
3740 }
3841 if ($ node instanceof FunctionLike) {
Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ public function testParseAssignOperator(): void
107107 $ functions = $ result ->functions ;
108108 $ this ->assertCount (1 , $ functions );
109109 $ this ->assertSame ('assignFunction ' , $ functions [0 ]->name );
110- $ this ->assertCount (14 , $ functions [0 ]->getVariables ());
110+ $ this ->assertCount (15 , $ functions [0 ]->getVariables ());
111111
112112 $ vars = $ functions [0 ]->getVariables ();
113113 $ this ->assertSame ('num ' , $ vars [0 ]->name );
@@ -152,6 +152,9 @@ public function testParseAssignOperator(): void
152152 $ this ->assertSame ('num ' , $ vars [13 ]->name );
153153 $ this ->assertSame (18 , $ vars [13 ]->lineNumber );
154154 $ 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 );
155158 }
156159
157160 public function testInterpolatedStringFunction (): void
Original file line number Diff line number Diff line change @@ -16,4 +16,5 @@ function assignFunction(): void
1616 $ num >>= 1 ; // 16行目
1717 $ num .= 1 ; // 17行目
1818 $ num ??= 1 ; // 18行目
19+ $ num =& f (); // 19行目
1920}
You can’t perform that action at this time.
0 commit comments