Page MenuHomePhabricator

D21173.diff
No OneTemporary

D21173.diff

diff --git a/src/parser/xhpast/api/XHPASTNode.php b/src/parser/xhpast/api/XHPASTNode.php
--- a/src/parser/xhpast/api/XHPASTNode.php
+++ b/src/parser/xhpast/api/XHPASTNode.php
@@ -163,7 +163,26 @@
$re = '/\\\\.|(\$|\{\$|\${)([a-z_\x7F-\xFF][a-z0-9_\x7F-\xFF]*)/i';
$matches = null;
preg_match_all($re, $value, $matches, PREG_OFFSET_CAPTURE);
- return ipull(array_filter($matches[2]), 0, 1);
+
+ // NOTE: The result format for this construction changed in PHP 7.4.
+ // See T13518.
+
+ $names = $matches[2];
+ foreach ($names as $name_idx => $name_match) {
+ if ($name_match === '') {
+ unset($names[$name_idx]);
+ continue;
+ }
+
+ if ($name_match[1] === -1) {
+ unset($names[$name_idx]);
+ continue;
+ }
+ }
+
+ $names = ipull($names, 0, 1);
+
+ return $names;
}
public function getStringLiteralValue() {

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 24, 2:40 AM (18 h, 31 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6922736
Default Alt Text
D21173.diff (901 B)

Event Timeline