php7 test coverage
This commit is contained in:
		
							parent
							
								
									a9d06733bc
								
							
						
					
					
						commit
						55316625e8
					
				
							
								
								
									
										420
									
								
								diff
									
									
									
									
									
								
							
							
						
						
									
										420
									
								
								diff
									
									
									
									
									
								
							| @ -1,420 +0,0 @@ | |||||||
|   1 |  | ||||||
|   2 |  | ||||||
|   3 |  | ||||||
|   4 |  | ||||||
|   5 |  | ||||||
|   6 |  | ||||||
|   7 |  | ||||||
|   8 |  | ||||||
|   9 |  | ||||||
|   10 |  | ||||||
|   11 |  | ||||||
|   12 |  | ||||||
|   13 |  | ||||||
|   14 |  | ||||||
|   15 |  | ||||||
|   16 |  | ||||||
|   17 |  | ||||||
|   18 |  | ||||||
|   19 |  | ||||||
|   20 |  | ||||||
|   21 |  | ||||||
|   22 |  | ||||||
|   23 |  | ||||||
|   24 |  | ||||||
|   25 |  | ||||||
|   26 |  | ||||||
|   27 |  | ||||||
|   28 |  | ||||||
|   29 |  | ||||||
|   30 |  | ||||||
|   31 |  | ||||||
|   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 |  | ||||||
|   62 |  | ||||||
|   63 |  | ||||||
|   64 |  | ||||||
|   65 |  | ||||||
|   66 |  | ||||||
|   67 |  | ||||||
|   68 |  | ||||||
|   69 |  | ||||||
|   70 |  | ||||||
|   71 |  | ||||||
|   72 |  | ||||||
|   73 |  | ||||||
|   74 |  | ||||||
|   75 |  | ||||||
|   76 |  | ||||||
|   77 |  | ||||||
|   78 |  | ||||||
|   79 |  | ||||||
|   80 |  | ||||||
|   81 |  | ||||||
|   82 |  | ||||||
|   83 |  | ||||||
|   84 |  | ||||||
|   85 |  | ||||||
|   86 |  | ||||||
|   87 |  | ||||||
|   88 |  | ||||||
|   89 |  | ||||||
|   90 |  | ||||||
|   91 |  | ||||||
|   92 |  | ||||||
|   93 |  | ||||||
|   94 |  | ||||||
|   95 |  | ||||||
|   96 |  | ||||||
|   97 |  | ||||||
|   98 |  | ||||||
|   99 |  | ||||||
|   100 |  | ||||||
|   101 |  | ||||||
|   102 |  | ||||||
|   103 |  | ||||||
|   104 |  | ||||||
|   105 |  | ||||||
|   106 |  | ||||||
|   107 |  | ||||||
|   108 |  | ||||||
|   109 |  | ||||||
|   110 |  | ||||||
|   111 |  | ||||||
|   112 |  | ||||||
|   113 |  | ||||||
|   114 |  | ||||||
|   115 |  | ||||||
|   116 |  | ||||||
|   117 |  | ||||||
|   118 |  | ||||||
|   119 |  | ||||||
|   120 |  | ||||||
|   121 |  | ||||||
|   122 |  | ||||||
|   123 |  | ||||||
|   124 |  | ||||||
|   125 |  | ||||||
|   126 |  | ||||||
|   127 |  | ||||||
|   128 |  | ||||||
|   129 |  | ||||||
|   130 |  | ||||||
|   131 |  | ||||||
|   132 |  | ||||||
|   133 |  | ||||||
|   134 |  | ||||||
|   135 |  | ||||||
|   136 |  | ||||||
|   137 |  | ||||||
|   138 |  | ||||||
|   139 |  | ||||||
|   140 |  | ||||||
| - 141 |  | ||||||
| - 142 |  | ||||||
| - 143 |  | ||||||
|   144 |  | ||||||
|   145 |  | ||||||
|   146 |  | ||||||
|   147 |  | ||||||
| - 148 |  | ||||||
| - 149 |  | ||||||
|   150 |  | ||||||
|   151 |  | ||||||
|   152 |  | ||||||
|   153 |  | ||||||
|   154 |  | ||||||
|   155 |  | ||||||
|   156 |  | ||||||
|   157 |  | ||||||
|   158 |  | ||||||
|   159 |  | ||||||
|   160 |  | ||||||
|   161 |  | ||||||
|   162 |  | ||||||
|   163 |  | ||||||
|   164 |  | ||||||
|   165 |  | ||||||
|   166 |  | ||||||
|   167 |  | ||||||
|   168 |  | ||||||
|   169 |  | ||||||
|   170 |  | ||||||
|   171 |  | ||||||
|   172 |  | ||||||
|   173 |  | ||||||
|   174 |  | ||||||
| - 175 |  | ||||||
|   176 |  | ||||||
|   177 |  | ||||||
|   178 |  | ||||||
|   179 |  | ||||||
|   180 |  | ||||||
|   181 |  | ||||||
|   182 |  | ||||||
| - 183 |  | ||||||
| - 184 |  | ||||||
| - 185 |  | ||||||
| - 186 |  | ||||||
|   187 |  | ||||||
|   188 |  | ||||||
| - 189 |  | ||||||
|   190 |  | ||||||
|   191 |  | ||||||
|   192 |  | ||||||
|   193 |  | ||||||
|   194 |  | ||||||
|   195 |  | ||||||
|   196 |  | ||||||
|   197 |  | ||||||
| - 198 |  | ||||||
| - 199 |  | ||||||
|   200 |  | ||||||
| - 201 |  | ||||||
| - 202 |  | ||||||
|   203 |  | ||||||
|   204 |  | ||||||
|   205 |  | ||||||
|   206 |  | ||||||
|   207 |  | ||||||
|   208 |  | ||||||
|   209 |  | ||||||
|   210 |  | ||||||
|   211 |  | ||||||
|   212 |  | ||||||
|   213 |  | ||||||
| - 214 |  | ||||||
|   215 |  | ||||||
|   216 |  | ||||||
|   217 |  | ||||||
|   218 |  | ||||||
| - 219 |  | ||||||
|   220 |  | ||||||
| - 221 |  | ||||||
|   222 |  | ||||||
|   223 |  | ||||||
|   224 |  | ||||||
|   225 |  | ||||||
|   226 |  | ||||||
|   227 |  | ||||||
|   228 |  | ||||||
|   229 |  | ||||||
|   230 |  | ||||||
|   231 |  | ||||||
|   232 |  | ||||||
|   233 |  | ||||||
|   234 |  | ||||||
|   235 |  | ||||||
|   236 |  | ||||||
|   237 |  | ||||||
|   238 |  | ||||||
|   239 |  | ||||||
|   240 |  | ||||||
|   241 |  | ||||||
|   242 |  | ||||||
|   243 |  | ||||||
|   244 |  | ||||||
|   245 |  | ||||||
|   246 |  | ||||||
|   247 |  | ||||||
|   248 |  | ||||||
|   249 |  | ||||||
|   250 |  | ||||||
|   251 |  | ||||||
|   252 |  | ||||||
|   253 |  | ||||||
|   254 |  | ||||||
|   255 |  | ||||||
|   256 |  | ||||||
|   257 |  | ||||||
|   258 |  | ||||||
|   259 |  | ||||||
|   260 |  | ||||||
|   261 |  | ||||||
|   262 |  | ||||||
|   263 |  | ||||||
|   264 |  | ||||||
|   265 |  | ||||||
|   266 |  | ||||||
|   267 |  | ||||||
|   268 |  | ||||||
|   269 |  | ||||||
|   270 |  | ||||||
|   271 |  | ||||||
|   272 |  | ||||||
|   273 |  | ||||||
|   274 |  | ||||||
|   275 |  | ||||||
|   276 |  | ||||||
|   277 |  | ||||||
|   278 |  | ||||||
|   279 |  | ||||||
|   280 |  | ||||||
|   281 |  | ||||||
|   282 |  | ||||||
|   283 |  | ||||||
|   284 |  | ||||||
|   285 |  | ||||||
|   286 |  | ||||||
|   287 |  | ||||||
|   288 |  | ||||||
|   289 |  | ||||||
|   290 |  | ||||||
|   291 |  | ||||||
|   292 |  | ||||||
|   293 |  | ||||||
|   294 |  | ||||||
|   295 |  | ||||||
|   296 |  | ||||||
|   297 |  | ||||||
|   298 |  | ||||||
|   299 |  | ||||||
|   300 |  | ||||||
|   301 |  | ||||||
|   302 |  | ||||||
|   303 |  | ||||||
|   304 |  | ||||||
|   305 |  | ||||||
|   306 |  | ||||||
|   307 |  | ||||||
|   308 |  | ||||||
|   309 |  | ||||||
|   310 |  | ||||||
|   311 |  | ||||||
| - 312 |  | ||||||
|   313 |  | ||||||
|   314 |  | ||||||
| - 315 |  | ||||||
|   316 |  | ||||||
|   317 |  | ||||||
| - 318 |  | ||||||
| - 319 |  | ||||||
|   320 |  | ||||||
| - 321 |  | ||||||
|   322 |  | ||||||
|   323 |  | ||||||
|   324 |  | ||||||
|   325 |  | ||||||
|   326 |  | ||||||
|   327 |  | ||||||
|   328 |  | ||||||
|   329 |  | ||||||
|   330 |  | ||||||
|   331 |  | ||||||
|   332 |  | ||||||
|   333 |  | ||||||
|   334 |  | ||||||
|   335 |  | ||||||
|   336 |  | ||||||
|   337 |  | ||||||
|   338 |  | ||||||
|   339 |  | ||||||
|   340 |  | ||||||
|   341 |  | ||||||
|   342 |  | ||||||
|   343 |  | ||||||
| - 344 |  | ||||||
|   345 |  | ||||||
|   346 |  | ||||||
|   347 |  | ||||||
|   348 |  | ||||||
|   349 |  | ||||||
|   350 |  | ||||||
| - 351 |  | ||||||
| - 352 |  | ||||||
|   353 |  | ||||||
| - 354 |  | ||||||
| - 355 |  | ||||||
|   356 |  | ||||||
|   357 |  | ||||||
| - 358 |  | ||||||
| - 359 |  | ||||||
|   360 |  | ||||||
|   361 |  | ||||||
|   362 |  | ||||||
|   363 |  | ||||||
|   364 |  | ||||||
|   365 |  | ||||||
| - 366 |  | ||||||
|   367 |  | ||||||
|   368 |  | ||||||
| - 369 |  | ||||||
| - 370 |  | ||||||
| - 371 |  | ||||||
| - 372 |  | ||||||
| - 373 |  | ||||||
| - 374 |  | ||||||
| - 375 |  | ||||||
|   376 |  | ||||||
| - 377 |  | ||||||
| - 378 |  | ||||||
|   379 |  | ||||||
| - 380 |  | ||||||
| - 381 |  | ||||||
|   382 |  | ||||||
|   383 |  | ||||||
|   384 |  | ||||||
|   385 |  | ||||||
|   386 |  | ||||||
|   387 |  | ||||||
|   388 |  | ||||||
|   389 |  | ||||||
| - 390 |  | ||||||
|   391 |  | ||||||
| - 392 |  | ||||||
|   393 |  | ||||||
| - 394 |  | ||||||
|   395 |  | ||||||
| - 396 |  | ||||||
|   397 |  | ||||||
|   398 |  | ||||||
| - 399 |  | ||||||
|   400 |  | ||||||
| - 401 |  | ||||||
|   402 |  | ||||||
|   403 |  | ||||||
|   404 |  | ||||||
| - 405 |  | ||||||
| - 406 |  | ||||||
| - 407 |  | ||||||
| - 408 |  | ||||||
| - 409 |  | ||||||
| - 410 |  | ||||||
|   411 |  | ||||||
|   412 |  | ||||||
|   413 |  | ||||||
|   414 |  | ||||||
|   415 |  | ||||||
|   416 |  | ||||||
|   417 |  | ||||||
|   418 |  | ||||||
|   419 |  | ||||||
|   420 |  | ||||||
							
								
								
									
										1391
									
								
								php7/php7.go
									
									
									
									
									
								
							
							
						
						
									
										1391
									
								
								php7/php7.go
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										841
									
								
								php7/php7.y
									
									
									
									
									
								
							
							
						
						
									
										841
									
								
								php7/php7.y
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -41,6 +41,13 @@ func TestPhp7(t *testing.T) { | |||||||
| 		new foo($a, ...$b); | 		new foo($a, ...$b); | ||||||
| 		/** anonymous class */ | 		/** anonymous class */ | ||||||
| 		new class ($a, ...$b) {}; | 		new class ($a, ...$b) {}; | ||||||
|  | 		new class {}; | ||||||
|  | 		new $foo; | ||||||
|  | 		new $foo[1]; | ||||||
|  | 		new $foo{$bar}; | ||||||
|  | 		new $foo->bar; | ||||||
|  | 		new $foo::$bar; | ||||||
|  | 		new static::$bar; | ||||||
| 
 | 
 | ||||||
| 		function foo(?bar $bar=null, baz &...$baz) {} | 		function foo(?bar $bar=null, baz &...$baz) {} | ||||||
| 		class foo {public function foo(?bar $bar=null, baz &...$baz) {}} | 		class foo {public function foo(?bar $bar=null, baz &...$baz) {}} | ||||||
| @ -89,13 +96,16 @@ CAD; | |||||||
| 
 | 
 | ||||||
| 		"test $var"; | 		"test $var"; | ||||||
| 		"test $var[1]"; | 		"test $var[1]"; | ||||||
|  | 		"test $var[-1]"; | ||||||
| 		"test $var[1234567890123456789012345678901234567890]"; | 		"test $var[1234567890123456789012345678901234567890]"; | ||||||
|  | 		"test $var[-1234567890123456789012345678901234567890]"; | ||||||
| 		"test $var[bar]"; | 		"test $var[bar]"; | ||||||
| 		"test $var[$bar]"; | 		"test $var[$bar]"; | ||||||
| 		"$foo $bar"; | 		"$foo $bar"; | ||||||
| 		"test $foo->bar()"; | 		"test $foo->bar()"; | ||||||
| 		"test ${foo}"; | 		"test ${foo}"; | ||||||
| 		"test ${foo[0]}"; | 		"test ${foo[0]}"; | ||||||
|  | 		"test ${$foo}"; | ||||||
| 		"test {$foo->bar()}"; | 		"test {$foo->bar()}"; | ||||||
| 
 | 
 | ||||||
| 		if ($a) : | 		if ($a) : | ||||||
| @ -190,9 +200,13 @@ CAD; | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		throw $e; | 		throw $e; | ||||||
|  | 
 | ||||||
| 		trait Foo {} | 		trait Foo {} | ||||||
| 		class Foo { use Bar; } | 		class Foo { use Bar; } | ||||||
| 		class Foo { use Bar, Baz; } | 		class Foo { use Bar, Baz {} } | ||||||
|  | 		class Foo { use Bar, Baz { one as include; } } | ||||||
|  | 		class Foo { use Bar, Baz { one as public; } } | ||||||
|  | 		class Foo { use Bar, Baz { one as public two; } } | ||||||
| 		class Foo { use Bar, Baz { Bar::one insteadof Baz, Quux; Baz::one as two; } } | 		class Foo { use Bar, Baz { Bar::one insteadof Baz, Quux; Baz::one as two; } } | ||||||
| 
 | 
 | ||||||
| 		try {} | 		try {} | ||||||
| @ -228,6 +242,7 @@ CAD; | |||||||
| 		!$a; | 		!$a; | ||||||
| 
 | 
 | ||||||
| 		Foo::Bar; | 		Foo::Bar; | ||||||
|  | 		$foo::Bar; | ||||||
| 		clone($a); | 		clone($a); | ||||||
| 		clone $a; | 		clone $a; | ||||||
| 		function(){}; | 		function(){}; | ||||||
| @ -276,6 +291,8 @@ CAD; | |||||||
| 		print($a); | 		print($a); | ||||||
| 		$a->foo; | 		$a->foo; | ||||||
| 		` + "`cmd $a`;" + ` | 		` + "`cmd $a`;" + ` | ||||||
|  | 		` + "`cmd`;" + ` | ||||||
|  | 		` + "``;" + ` | ||||||
| 		[]; | 		[]; | ||||||
| 		[1]; | 		[1]; | ||||||
| 		[1=>1, &$b,]; | 		[1=>1, &$b,]; | ||||||
| @ -287,6 +304,7 @@ CAD; | |||||||
| 		namespace\Foo::bar(); | 		namespace\Foo::bar(); | ||||||
| 		\Foo::bar(); | 		\Foo::bar(); | ||||||
| 		Foo::$bar; | 		Foo::$bar; | ||||||
|  | 		$foo::$bar; | ||||||
| 		namespace\Foo::$bar; | 		namespace\Foo::$bar; | ||||||
| 		\Foo::$bar; | 		\Foo::$bar; | ||||||
| 		$a ? $b : $c; | 		$a ? $b : $c; | ||||||
| @ -365,6 +383,26 @@ CAD; | |||||||
| 			trait Quux{} | 			trait Quux{} | ||||||
| 			interface Quuux {} | 			interface Quuux {} | ||||||
| 		} | 		} | ||||||
|  | 		 | ||||||
|  | 		function foo(&$a = 1, ...$b = 1, $c = 1) {} | ||||||
|  | 		function foo(array $a, callable $b) {} | ||||||
|  | 		abstract final class foo { abstract protected static function bar(); final private function baz() {} } | ||||||
|  | 
 | ||||||
|  | 		(new Foo)->bar; | ||||||
|  | 		(new Foo)(); | ||||||
|  | 		[$foo][0](); | ||||||
|  | 		foo[1](); | ||||||
|  | 		"foo"(); | ||||||
|  | 		[1]{$foo}(); | ||||||
|  | 		${foo()}; | ||||||
|  | 
 | ||||||
|  | 		Foo::$bar(); | ||||||
|  | 		Foo::{$bar[0]}(); | ||||||
|  | 		 | ||||||
|  | 		$foo->$bar; | ||||||
|  | 		$foo->{$bar[0]}; | ||||||
|  | 
 | ||||||
|  | 		[1=>&$a, 2=>list($b)]; | ||||||
| 	` | 	` | ||||||
| 
 | 
 | ||||||
| 	expectedParams := []node.Node{ | 	expectedParams := []node.Node{ | ||||||
| @ -454,6 +492,59 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &stmt.Class{ | ||||||
|  | 						PhpDocComment: "", | ||||||
|  | 						Stmts:         []node.Node{}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 						Dim:      &scalar.Lnumber{Value: "1"}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 						Dim:      &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.PropertyFetch{ | ||||||
|  | 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 						Property: &node.Identifier{Value: "bar"}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.StaticPropertyFetch{ | ||||||
|  | 						Class:    &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 						Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.New{ | ||||||
|  | 					Class: &expr.StaticPropertyFetch{ | ||||||
|  | 						Class:    &node.Identifier{Value: "static"}, | ||||||
|  | 						Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Function{ | 			&stmt.Function{ | ||||||
| 				ReturnsRef:    false, | 				ReturnsRef:    false, | ||||||
| 				PhpDocComment: "", | 				PhpDocComment: "", | ||||||
| @ -589,6 +680,19 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &scalar.Encapsed{ | ||||||
|  | 					Parts: []node.Node{ | ||||||
|  | 						&scalar.EncapsedStringPart{Value: "test "}, | ||||||
|  | 						&expr.ArrayDimFetch{ | ||||||
|  | 							Variable: &expr.Variable{VarName: &node.Identifier{Value: "$var"}}, | ||||||
|  | 							Dim: &expr.UnaryMinus{ | ||||||
|  | 								Expr: &scalar.Lnumber{Value: "1"}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &scalar.Encapsed{ | 				Expr: &scalar.Encapsed{ | ||||||
| 					Parts: []node.Node{ | 					Parts: []node.Node{ | ||||||
| @ -600,6 +704,17 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &scalar.Encapsed{ | ||||||
|  | 					Parts: []node.Node{ | ||||||
|  | 						&scalar.EncapsedStringPart{Value: "test "}, | ||||||
|  | 						&expr.ArrayDimFetch{ | ||||||
|  | 							Variable: &expr.Variable{VarName: &node.Identifier{Value: "$var"}}, | ||||||
|  | 							Dim:      &scalar.String{Value: "-1234567890123456789012345678901234567890"}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &scalar.Encapsed{ | 				Expr: &scalar.Encapsed{ | ||||||
| 					Parts: []node.Node{ | 					Parts: []node.Node{ | ||||||
| @ -662,6 +777,14 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &scalar.Encapsed{ | ||||||
|  | 					Parts: []node.Node{ | ||||||
|  | 						&scalar.EncapsedStringPart{Value: "test "}, | ||||||
|  | 						&expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &scalar.Encapsed{ | 				Expr: &scalar.Encapsed{ | ||||||
| 					Parts: []node.Node{ | 					Parts: []node.Node{ | ||||||
| @ -1406,6 +1529,91 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Class{ | ||||||
|  | 				PhpDocComment: "", | ||||||
|  | 				ClassName:     &node.Identifier{Value: "Foo"}, | ||||||
|  | 				Stmts: []node.Node{ | ||||||
|  | 					&stmt.TraitUse{ | ||||||
|  | 						Traits: []node.Node{ | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Bar"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Baz"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						Adaptations: []node.Node{ | ||||||
|  | 							&stmt.TraitUseAlias{ | ||||||
|  | 								Ref: &stmt.TraitMethodRef{ | ||||||
|  | 									Method: &node.Identifier{Value: "one"}, | ||||||
|  | 								}, | ||||||
|  | 								Alias: &node.Identifier{Value: "include"}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Class{ | ||||||
|  | 				PhpDocComment: "", | ||||||
|  | 				ClassName:     &node.Identifier{Value: "Foo"}, | ||||||
|  | 				Stmts: []node.Node{ | ||||||
|  | 					&stmt.TraitUse{ | ||||||
|  | 						Traits: []node.Node{ | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Bar"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Baz"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						Adaptations: []node.Node{ | ||||||
|  | 							&stmt.TraitUseAlias{ | ||||||
|  | 								Ref: &stmt.TraitMethodRef{ | ||||||
|  | 									Method: &node.Identifier{Value: "one"}, | ||||||
|  | 								}, | ||||||
|  | 								Modifier: &node.Identifier{Value: "public"}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Class{ | ||||||
|  | 				PhpDocComment: "", | ||||||
|  | 				ClassName:     &node.Identifier{Value: "Foo"}, | ||||||
|  | 				Stmts: []node.Node{ | ||||||
|  | 					&stmt.TraitUse{ | ||||||
|  | 						Traits: []node.Node{ | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Bar"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 							&name.Name{ | ||||||
|  | 								Parts: []node.Node{ | ||||||
|  | 									&name.NamePart{Value: "Baz"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						Adaptations: []node.Node{ | ||||||
|  | 							&stmt.TraitUseAlias{ | ||||||
|  | 								Ref: &stmt.TraitMethodRef{ | ||||||
|  | 									Method: &node.Identifier{Value: "one"}, | ||||||
|  | 								}, | ||||||
|  | 								Modifier: &node.Identifier{Value: "public"}, | ||||||
|  | 								Alias:    &node.Identifier{Value: "two"}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Class{ | 			&stmt.Class{ | ||||||
| 				PhpDocComment: "", | 				PhpDocComment: "", | ||||||
| 				ClassName:     &node.Identifier{Value: "Foo"}, | 				ClassName:     &node.Identifier{Value: "Foo"}, | ||||||
| @ -1900,6 +2108,12 @@ CAD; | |||||||
| 					ConstantName: &node.Identifier{Value: "Bar"}, | 					ConstantName: &node.Identifier{Value: "Bar"}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.ClassConstFetch{ | ||||||
|  | 					Class:        &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 					ConstantName: &node.Identifier{Value: "Bar"}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &expr.Clone{ | 				Expr: &expr.Clone{ | ||||||
| 					Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | 					Expr: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | ||||||
| @ -2243,6 +2457,18 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.ShellExec{ | ||||||
|  | 					Parts: []node.Node{ | ||||||
|  | 						&scalar.EncapsedStringPart{Value: "cmd"}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.ShellExec{ | ||||||
|  | 					Parts: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &expr.ShortArray{ | 				Expr: &expr.ShortArray{ | ||||||
| 					Items: []node.Node{}, | 					Items: []node.Node{}, | ||||||
| @ -2364,6 +2590,12 @@ CAD; | |||||||
| 					Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | 					Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.StaticPropertyFetch{ | ||||||
|  | 					Class:    &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 					Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			&stmt.Expression{ | 			&stmt.Expression{ | ||||||
| 				Expr: &expr.StaticPropertyFetch{ | 				Expr: &expr.StaticPropertyFetch{ | ||||||
| 					Class: &name.Relative{ | 					Class: &name.Relative{ | ||||||
| @ -2802,6 +3034,201 @@ CAD; | |||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
|  | 			&stmt.Function{ | ||||||
|  | 				FunctionName: &node.Identifier{Value: "foo"}, | ||||||
|  | 				Params: []node.Node{ | ||||||
|  | 					&node.Parameter{ | ||||||
|  | 						ByRef:        true, | ||||||
|  | 						Variadic:     false, | ||||||
|  | 						Variable:     &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | ||||||
|  | 						DefaultValue: &scalar.Lnumber{Value: "1"}, | ||||||
|  | 					}, | ||||||
|  | 					&node.Parameter{ | ||||||
|  | 						ByRef:        false, | ||||||
|  | 						Variadic:     true, | ||||||
|  | 						Variable:     &expr.Variable{VarName: &node.Identifier{Value: "$b"}}, | ||||||
|  | 						DefaultValue: &scalar.Lnumber{Value: "1"}, | ||||||
|  | 					}, | ||||||
|  | 					&node.Parameter{ | ||||||
|  | 						ByRef:        false, | ||||||
|  | 						Variadic:     false, | ||||||
|  | 						Variable:     &expr.Variable{VarName: &node.Identifier{Value: "$c"}}, | ||||||
|  | 						DefaultValue: &scalar.Lnumber{Value: "1"}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 				Stmts: []node.Node{}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Function{ | ||||||
|  | 				FunctionName: &node.Identifier{Value: "foo"}, | ||||||
|  | 				Params: []node.Node{ | ||||||
|  | 					&node.Parameter{ | ||||||
|  | 						ByRef:        false, | ||||||
|  | 						Variadic:     false, | ||||||
|  | 						VariableType: &node.Identifier{Value: "array"}, | ||||||
|  | 						Variable:     &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | ||||||
|  | 					}, | ||||||
|  | 					&node.Parameter{ | ||||||
|  | 						ByRef:        false, | ||||||
|  | 						Variadic:     false, | ||||||
|  | 						VariableType: &node.Identifier{Value: "callable"}, | ||||||
|  | 						Variable:     &expr.Variable{VarName: &node.Identifier{Value: "$b"}}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 				Stmts: []node.Node{}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Class{ | ||||||
|  | 				ClassName: &node.Identifier{Value: "foo"}, | ||||||
|  | 				Modifiers: []node.Node{ | ||||||
|  | 					&node.Identifier{Value: "abstract"}, | ||||||
|  | 					&node.Identifier{Value: "final"}, | ||||||
|  | 				}, | ||||||
|  | 				Stmts: []node.Node{ | ||||||
|  | 					&stmt.ClassMethod{ | ||||||
|  | 						MethodName: &node.Identifier{Value: "bar"}, | ||||||
|  | 						Modifiers: []node.Node{ | ||||||
|  | 							&node.Identifier{Value: "abstract"}, | ||||||
|  | 							&node.Identifier{Value: "protected"}, | ||||||
|  | 							&node.Identifier{Value: "static"}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 					&stmt.ClassMethod{ | ||||||
|  | 						MethodName: &node.Identifier{Value: "baz"}, | ||||||
|  | 						Modifiers: []node.Node{ | ||||||
|  | 							&node.Identifier{Value: "final"}, | ||||||
|  | 							&node.Identifier{Value: "private"}, | ||||||
|  | 						}, | ||||||
|  | 						Stmts: []node.Node{}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.PropertyFetch{ | ||||||
|  | 					Variable: &expr.New{ | ||||||
|  | 						Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, | ||||||
|  | 					}, | ||||||
|  | 					Property: &node.Identifier{Value: "bar"}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.FunctionCall{ | ||||||
|  | 					Function: &expr.New{ | ||||||
|  | 						Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, | ||||||
|  | 					}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.FunctionCall{ | ||||||
|  | 					Function: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.ShortArray{ | ||||||
|  | 							Items: []node.Node{ | ||||||
|  | 								&expr.ArrayItem{ | ||||||
|  | 									ByRef: false, | ||||||
|  | 									Val:   &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						Dim: &scalar.Lnumber{Value: "0"}, | ||||||
|  | 					}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.FunctionCall{ | ||||||
|  | 					Function: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.ConstFetch{ | ||||||
|  | 							Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, | ||||||
|  | 						}, | ||||||
|  | 						Dim: &scalar.Lnumber{Value: "1"}, | ||||||
|  | 					}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.FunctionCall{ | ||||||
|  | 					Function:  &scalar.String{Value: "\"foo\""}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.FunctionCall{ | ||||||
|  | 					Function: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.ShortArray{ | ||||||
|  | 							Items: []node.Node{ | ||||||
|  | 								&expr.ArrayItem{ | ||||||
|  | 									ByRef: false, | ||||||
|  | 									Val:   &scalar.Lnumber{Value: "1"}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						Dim: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 					}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.Variable{ | ||||||
|  | 					VarName: &expr.FunctionCall{ | ||||||
|  | 						Function:  &name.Name{Parts: []node.Node{&name.NamePart{Value: "foo"}}}, | ||||||
|  | 						Arguments: []node.Node{}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.StaticCall{ | ||||||
|  | 					Class:     &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, | ||||||
|  | 					Call:      &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.StaticCall{ | ||||||
|  | 					Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, | ||||||
|  | 					Call: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 						Dim:      &scalar.Lnumber{Value: "0"}, | ||||||
|  | 					}, | ||||||
|  | 					Arguments: []node.Node{}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.PropertyFetch{ | ||||||
|  | 					Variable: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 					Property: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.PropertyFetch{ | ||||||
|  | 					Variable: &expr.Variable{VarName: &node.Identifier{Value: "$foo"}}, | ||||||
|  | 					Property: &expr.ArrayDimFetch{ | ||||||
|  | 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$bar"}}, | ||||||
|  | 						Dim:      &scalar.Lnumber{Value: "0"}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 			&stmt.Expression{ | ||||||
|  | 				Expr: &expr.ShortArray{ | ||||||
|  | 					Items: []node.Node{ | ||||||
|  | 						&expr.ArrayItem{ | ||||||
|  | 							ByRef: true, | ||||||
|  | 							Key:   &scalar.Lnumber{Value: "1"}, | ||||||
|  | 							Val:   &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | ||||||
|  | 						}, | ||||||
|  | 						&expr.ArrayItem{ | ||||||
|  | 							ByRef: false, | ||||||
|  | 							Key:   &scalar.Lnumber{Value: "2"}, | ||||||
|  | 							Val: &expr.List{ | ||||||
|  | 								Items: []node.Node{ | ||||||
|  | 									&expr.ArrayItem{ | ||||||
|  | 										ByRef: false, | ||||||
|  | 										Val:   &expr.Variable{VarName: &node.Identifier{Value: "$b"}}, | ||||||
|  | 									}, | ||||||
|  | 								}, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user