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); | ||||
| 		/** anonymous class */ | ||||
| 		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) {} | ||||
| 		class foo {public function foo(?bar $bar=null, baz &...$baz) {}} | ||||
| @ -89,13 +96,16 @@ CAD; | ||||
| 
 | ||||
| 		"test $var"; | ||||
| 		"test $var[1]"; | ||||
| 		"test $var[-1]"; | ||||
| 		"test $var[1234567890123456789012345678901234567890]"; | ||||
| 		"test $var[-1234567890123456789012345678901234567890]"; | ||||
| 		"test $var[bar]"; | ||||
| 		"test $var[$bar]"; | ||||
| 		"$foo $bar"; | ||||
| 		"test $foo->bar()"; | ||||
| 		"test ${foo}"; | ||||
| 		"test ${foo[0]}"; | ||||
| 		"test ${$foo}"; | ||||
| 		"test {$foo->bar()}"; | ||||
| 
 | ||||
| 		if ($a) : | ||||
| @ -190,9 +200,13 @@ CAD; | ||||
| 		} | ||||
| 
 | ||||
| 		throw $e; | ||||
| 
 | ||||
| 		trait Foo {} | ||||
| 		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; } } | ||||
| 
 | ||||
| 		try {} | ||||
| @ -228,6 +242,7 @@ CAD; | ||||
| 		!$a; | ||||
| 
 | ||||
| 		Foo::Bar; | ||||
| 		$foo::Bar; | ||||
| 		clone($a); | ||||
| 		clone $a; | ||||
| 		function(){}; | ||||
| @ -275,7 +290,9 @@ CAD; | ||||
| 		new class ($a, ...$b) {}; | ||||
| 		print($a); | ||||
| 		$a->foo; | ||||
| 	` + "`cmd $a`;" + ` | ||||
| 		` + "`cmd $a`;" + ` | ||||
| 		` + "`cmd`;" + ` | ||||
| 		` + "``;" + ` | ||||
| 		[]; | ||||
| 		[1]; | ||||
| 		[1=>1, &$b,]; | ||||
| @ -287,6 +304,7 @@ CAD; | ||||
| 		namespace\Foo::bar(); | ||||
| 		\Foo::bar(); | ||||
| 		Foo::$bar; | ||||
| 		$foo::$bar; | ||||
| 		namespace\Foo::$bar; | ||||
| 		\Foo::$bar; | ||||
| 		$a ? $b : $c; | ||||
| @ -365,6 +383,26 @@ CAD; | ||||
| 			trait Quux{} | ||||
| 			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{ | ||||
| @ -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{ | ||||
| 				ReturnsRef:    false, | ||||
| 				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{ | ||||
| 				Expr: &scalar.Encapsed{ | ||||
| 					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{ | ||||
| 				Expr: &scalar.Encapsed{ | ||||
| 					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{ | ||||
| 				Expr: &scalar.Encapsed{ | ||||
| 					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{ | ||||
| 				PhpDocComment: "", | ||||
| 				ClassName:     &node.Identifier{Value: "Foo"}, | ||||
| @ -1900,6 +2108,12 @@ CAD; | ||||
| 					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{ | ||||
| 				Expr: &expr.Clone{ | ||||
| 					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{ | ||||
| 				Expr: &expr.ShortArray{ | ||||
| 					Items: []node.Node{}, | ||||
| @ -2364,6 +2590,12 @@ CAD; | ||||
| 					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{ | ||||
| 				Expr: &expr.StaticPropertyFetch{ | ||||
| 					Class: &name.Relative{ | ||||
| @ -2772,12 +3004,12 @@ CAD; | ||||
| 				FunctionName: &node.Identifier{Value: "foo"}, | ||||
| 				Params: []node.Node{ | ||||
| 					&node.Parameter{ | ||||
| 						ByRef: true, | ||||
| 						ByRef:    true, | ||||
| 						Variadic: false, | ||||
| 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$a"}}, | ||||
| 					}, | ||||
| 					&node.Parameter{ | ||||
| 						ByRef: false, | ||||
| 						ByRef:    false, | ||||
| 						Variadic: true, | ||||
| 						Variable: &expr.Variable{VarName: &node.Identifier{Value: "$b"}}, | ||||
| 					}, | ||||
| @ -2786,22 +3018,217 @@ CAD; | ||||
| 					&stmt.HaltCompiler{}, | ||||
| 					&stmt.Function{ | ||||
| 						FunctionName: &node.Identifier{Value: "bar"}, | ||||
| 						Stmts: []node.Node{}, | ||||
| 						Stmts:        []node.Node{}, | ||||
| 					}, | ||||
| 					&stmt.Class{ | ||||
| 						ClassName: &node.Identifier{Value: "Baz"}, | ||||
| 						Stmts: []node.Node{}, | ||||
| 						Stmts:     []node.Node{}, | ||||
| 					}, | ||||
| 					&stmt.Trait{ | ||||
| 						TraitName: &node.Identifier{Value: "Quux"}, | ||||
| 						Stmts: []node.Node{}, | ||||
| 						Stmts:     []node.Node{}, | ||||
| 					}, | ||||
| 					&stmt.Interface{ | ||||
| 						InterfaceName: &node.Identifier{Value: "Quuux"}, | ||||
| 						Stmts:         []node.Node{}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 			&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