Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/test/code/formatPreservation/basic.test @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
12:7a779792577d | 13:5fb285c0d0e3 |
---|---|
1 abc1 | |
2 ----- | |
3 <?php | |
4 echo | |
5 1 | |
6 + | |
7 2 | |
8 + | |
9 3; | |
10 ----- | |
11 $stmts[0]->exprs[0]->left->right->value = 42; | |
12 ----- | |
13 <?php | |
14 echo | |
15 1 | |
16 + | |
17 42 | |
18 + | |
19 3; | |
20 ----- | |
21 <?php | |
22 function foo($a) | |
23 { return $a; } | |
24 ----- | |
25 $stmts[0]->name = new Node\Identifier('bar'); | |
26 ----- | |
27 <?php | |
28 function bar($a) | |
29 { return $a; } | |
30 ----- | |
31 <?php | |
32 function | |
33 foo() { | |
34 call( | |
35 $bar | |
36 ); | |
37 } | |
38 ----- | |
39 // This triggers a fallback | |
40 $stmts[0]->byRef = true; | |
41 ----- | |
42 <?php | |
43 function &foo() | |
44 { | |
45 call( | |
46 $bar | |
47 ); | |
48 } | |
49 ----- | |
50 <?php | |
51 function | |
52 foo() { | |
53 echo "Start | |
54 End"; | |
55 } | |
56 ----- | |
57 // This triggers a fallback | |
58 $stmts[0]->byRef = true; | |
59 ----- | |
60 <?php | |
61 function &foo() | |
62 { | |
63 echo "Start | |
64 End"; | |
65 } | |
66 ----- | |
67 <?php | |
68 function test() { | |
69 call1( | |
70 $bar | |
71 ); | |
72 } | |
73 call2( | |
74 $foo | |
75 ); | |
76 ----- | |
77 $tmp = $stmts[0]->stmts[0]; | |
78 $stmts[0]->stmts[0] = $stmts[1]; | |
79 $stmts[1] = $tmp; | |
80 ----- | |
81 <?php | |
82 function test() { | |
83 call2( | |
84 $foo | |
85 ); | |
86 } | |
87 call1( | |
88 $bar | |
89 ); | |
90 ----- | |
91 <?php | |
92 x; | |
93 function test() { | |
94 call1( | |
95 $bar | |
96 ); | |
97 } | |
98 call2( | |
99 $foo | |
100 ); | |
101 ----- | |
102 $tmp = $stmts[1]->stmts[0]; | |
103 $stmts[1]->stmts[0] = $stmts[2]; | |
104 $stmts[2] = $tmp; | |
105 // Same test, but also removing first statement, triggering fallback | |
106 array_splice($stmts, 0, 1, []); | |
107 ----- | |
108 <?php | |
109 | |
110 function test() { | |
111 call2( | |
112 $foo | |
113 ); | |
114 } | |
115 call1( | |
116 $bar | |
117 ); | |
118 ----- | |
119 <?php | |
120 echo 1; | |
121 ----- | |
122 $stmts[0] = new Stmt\Expression( | |
123 new Expr\Assign(new Expr\Variable('a'), new Expr\Variable('b'))); | |
124 ----- | |
125 <?php | |
126 $a = $b; | |
127 ----- | |
128 <?php | |
129 echo$a; | |
130 ----- | |
131 $stmts[0]->exprs[0] = new Expr\ConstFetch(new Node\Name('C')); | |
132 ----- | |
133 <?php | |
134 echo C; | |
135 ----- | |
136 <?php | |
137 function foo() { | |
138 foo(); | |
139 /* | |
140 * bar | |
141 */ | |
142 baz(); | |
143 } | |
144 | |
145 { | |
146 $x; | |
147 } | |
148 ----- | |
149 $tmp = $stmts[0]; | |
150 $stmts[0] = $stmts[1]; | |
151 $stmts[1] = $tmp; | |
152 /* TODO This used to do two replacement operations, but with the node list diffing this is a | |
153 * remove, keep, add (which probably makes more sense). As such, this currently triggers a | |
154 * fallback. */ | |
155 ----- | |
156 <?php | |
157 | |
158 $x; | |
159 function foo() { | |
160 foo(); | |
161 /* | |
162 * bar | |
163 */ | |
164 baz(); | |
165 } | |
166 ----- | |
167 <?php | |
168 echo "${foo}bar"; | |
169 echo "${foo['baz']}bar"; | |
170 ----- | |
171 $stmts[0]->exprs[0]->parts[0] = new Expr\Variable('bar'); | |
172 $stmts[1]->exprs[0]->parts[0] = new Expr\Variable('bar'); | |
173 ----- | |
174 <?php | |
175 echo "{$bar}bar"; | |
176 echo "{$bar}bar"; | |
177 ----- | |
178 <?php | |
179 [$a | |
180 ,$b | |
181 , | |
182 ,] = $b; | |
183 ----- | |
184 /* Nothing */ | |
185 ----- | |
186 <?php | |
187 [$a | |
188 ,$b | |
189 , | |
190 ,] = $b; |