sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							190 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							190 lines
						
					
					
						
							2.3 KiB
						
					
					
				
								abc1
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo
							 | 
						|
								    1
							 | 
						|
								        +
							 | 
						|
								            2
							 | 
						|
								                +
							 | 
						|
								                    3;
							 | 
						|
								-----
							 | 
						|
								$stmts[0]->exprs[0]->left->right->value = 42;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo
							 | 
						|
								    1
							 | 
						|
								        +
							 | 
						|
								            42
							 | 
						|
								                +
							 | 
						|
								                    3;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function foo($a)
							 | 
						|
								    { return $a; }
							 | 
						|
								-----
							 | 
						|
								$stmts[0]->name = new Node\Identifier('bar');
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function bar($a)
							 | 
						|
								    { return $a; }
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function
							 | 
						|
								foo() {
							 | 
						|
								    call(
							 | 
						|
								        $bar
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								// This triggers a fallback
							 | 
						|
								$stmts[0]->byRef = true;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function &foo()
							 | 
						|
								{
							 | 
						|
								    call(
							 | 
						|
								        $bar
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function
							 | 
						|
								foo() {
							 | 
						|
								echo "Start
							 | 
						|
								End";
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								// This triggers a fallback
							 | 
						|
								$stmts[0]->byRef = true;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function &foo()
							 | 
						|
								{
							 | 
						|
								    echo "Start
							 | 
						|
								End";
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function test() {
							 | 
						|
								    call1(
							 | 
						|
								        $bar
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								call2(
							 | 
						|
								    $foo
							 | 
						|
								);
							 | 
						|
								-----
							 | 
						|
								$tmp = $stmts[0]->stmts[0];
							 | 
						|
								$stmts[0]->stmts[0] = $stmts[1];
							 | 
						|
								$stmts[1] = $tmp;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function test() {
							 | 
						|
								    call2(
							 | 
						|
								        $foo
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								call1(
							 | 
						|
								    $bar
							 | 
						|
								);
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								x;
							 | 
						|
								function test() {
							 | 
						|
								    call1(
							 | 
						|
								        $bar
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								call2(
							 | 
						|
								    $foo
							 | 
						|
								);
							 | 
						|
								-----
							 | 
						|
								$tmp = $stmts[1]->stmts[0];
							 | 
						|
								$stmts[1]->stmts[0] = $stmts[2];
							 | 
						|
								$stmts[2] = $tmp;
							 | 
						|
								// Same test, but also removing first statement, triggering fallback
							 | 
						|
								array_splice($stmts, 0, 1, []);
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								
							 | 
						|
								function test() {
							 | 
						|
								    call2(
							 | 
						|
								        $foo
							 | 
						|
								    );
							 | 
						|
								}
							 | 
						|
								call1(
							 | 
						|
								    $bar
							 | 
						|
								);
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								    echo 1;
							 | 
						|
								-----
							 | 
						|
								$stmts[0] = new Stmt\Expression(
							 | 
						|
								    new Expr\Assign(new Expr\Variable('a'), new Expr\Variable('b')));
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								    $a = $b;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo$a;
							 | 
						|
								-----
							 | 
						|
								$stmts[0]->exprs[0] = new Expr\ConstFetch(new Node\Name('C'));
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo C;
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								function foo() {
							 | 
						|
								    foo();
							 | 
						|
								    /*
							 | 
						|
								     * bar
							 | 
						|
								     */
							 | 
						|
								    baz();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								{
							 | 
						|
								    $x;
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								$tmp = $stmts[0];
							 | 
						|
								$stmts[0] = $stmts[1];
							 | 
						|
								$stmts[1] = $tmp;
							 | 
						|
								/* TODO This used to do two replacement operations, but with the node list diffing this is a
							 | 
						|
								 * remove, keep, add (which probably makes more sense). As such, this currently triggers a
							 | 
						|
								 * fallback. */
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								
							 | 
						|
								$x;
							 | 
						|
								function foo() {
							 | 
						|
								    foo();
							 | 
						|
								    /*
							 | 
						|
								     * bar
							 | 
						|
								     */
							 | 
						|
								    baz();
							 | 
						|
								}
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo "${foo}bar";
							 | 
						|
								echo "${foo['baz']}bar";
							 | 
						|
								-----
							 | 
						|
								$stmts[0]->exprs[0]->parts[0] = new Expr\Variable('bar');
							 | 
						|
								$stmts[1]->exprs[0]->parts[0] = new Expr\Variable('bar');
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								echo "{$bar}bar";
							 | 
						|
								echo "{$bar}bar";
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								[$a
							 | 
						|
								,$b
							 | 
						|
								,
							 | 
						|
								,] = $b;
							 | 
						|
								-----
							 | 
						|
								/* Nothing */
							 | 
						|
								-----
							 | 
						|
								<?php
							 | 
						|
								[$a
							 | 
						|
								,$b
							 | 
						|
								,
							 | 
						|
								,] = $b;
							 |