@@ -97,4 +97,60 @@ public function testParseNamespace(): void
97
97
$ this ->assertCount (0 , $ functions [1 ]->getVariables ());
98
98
}
99
99
100
+ public function testParseAssignOperator (): void
101
+ {
102
+ $ parser = new VariableParser ();
103
+ $ content = file_get_contents ($ this ->fixtureDir . '/assign_operator.php ' );
104
+ $ result = $ parser ->parse ($ content );
105
+
106
+ $ this ->assertInstanceOf (ParseResult::class, $ result );
107
+ $ functions = $ result ->functions ;
108
+ $ this ->assertCount (1 , $ functions );
109
+ $ this ->assertSame ('assignFunction ' , $ functions [0 ]->name );
110
+ $ this ->assertCount (14 , $ functions [0 ]->getVariables ());
111
+
112
+ $ vars = $ functions [0 ]->getVariables ();
113
+ $ this ->assertSame ('num ' , $ vars [0 ]->name );
114
+ $ this ->assertSame (5 , $ vars [0 ]->lineNumber );
115
+ $ this ->assertSame (true , $ vars [0 ]->assigned , '$num = 1; ' );
116
+ $ this ->assertSame ('num ' , $ vars [1 ]->name );
117
+ $ this ->assertSame (6 , $ vars [1 ]->lineNumber );
118
+ $ this ->assertSame (true , $ vars [1 ]->assigned , '$num += 1; ' );
119
+ $ this ->assertSame ('num ' , $ vars [2 ]->name );
120
+ $ this ->assertSame (7 , $ vars [2 ]->lineNumber );
121
+ $ this ->assertSame (true , $ vars [2 ]->assigned , '$num -= 1; ' );
122
+ $ this ->assertSame ('num ' , $ vars [3 ]->name );
123
+ $ this ->assertSame (8 , $ vars [3 ]->lineNumber );
124
+ $ this ->assertSame (true , $ vars [3 ]->assigned , '$num *= 1; ' );
125
+ $ this ->assertSame ('num ' , $ vars [4 ]->name );
126
+ $ this ->assertSame (9 , $ vars [4 ]->lineNumber );
127
+ $ this ->assertSame (true , $ vars [4 ]->assigned );
128
+ $ this ->assertSame ('num ' , $ vars [5 ]->name );
129
+ $ this ->assertSame (10 , $ vars [5 ]->lineNumber );
130
+ $ this ->assertSame (true , $ vars [5 ]->assigned );
131
+ $ this ->assertSame ('num ' , $ vars [6 ]->name );
132
+ $ this ->assertSame (11 , $ vars [6 ]->lineNumber );
133
+ $ this ->assertSame (true , $ vars [6 ]->assigned );
134
+ $ this ->assertSame ('num ' , $ vars [7 ]->name );
135
+ $ this ->assertSame (12 , $ vars [7 ]->lineNumber );
136
+ $ this ->assertSame (true , $ vars [7 ]->assigned );
137
+ $ this ->assertSame ('num ' , $ vars [8 ]->name );
138
+ $ this ->assertSame (13 , $ vars [8 ]->lineNumber );
139
+ $ this ->assertSame (true , $ vars [8 ]->assigned );
140
+ $ this ->assertSame ('num ' , $ vars [9 ]->name );
141
+ $ this ->assertSame (14 , $ vars [9 ]->lineNumber );
142
+ $ this ->assertSame (true , $ vars [9 ]->assigned );
143
+ $ this ->assertSame ('num ' , $ vars [10 ]->name );
144
+ $ this ->assertSame (15 , $ vars [10 ]->lineNumber );
145
+ $ this ->assertSame (true , $ vars [10 ]->assigned );
146
+ $ this ->assertSame ('num ' , $ vars [11 ]->name );
147
+ $ this ->assertSame (16 , $ vars [11 ]->lineNumber );
148
+ $ this ->assertSame (true , $ vars [11 ]->assigned );
149
+ $ this ->assertSame ('num ' , $ vars [12 ]->name );
150
+ $ this ->assertSame (17 , $ vars [12 ]->lineNumber );
151
+ $ this ->assertSame (true , $ vars [12 ]->assigned );
152
+ $ this ->assertSame ('num ' , $ vars [13 ]->name );
153
+ $ this ->assertSame (18 , $ vars [13 ]->lineNumber );
154
+ $ this ->assertSame (true , $ vars [13 ]->assigned );
155
+ }
100
156
}
0 commit comments