]> granicus.if.org Git - php/commitdiff
Remove depreacted curly brace offset syntax
authorGeorge Peter Banyard <girgias@php.net>
Fri, 22 May 2020 14:52:17 +0000 (16:52 +0200)
committerGeorge Peter Banyard <girgias@php.net>
Fri, 22 May 2020 14:52:17 +0000 (16:52 +0200)
Closes GH-5221

Zend/tests/036.phpt
Zend/tests/alternative_offset_syntax_compile_error_in_const_expr.phpt [new file with mode: 0644]
Zend/tests/alternative_offset_syntax_compile_error_outside_const_expr.phpt [new file with mode: 0644]
Zend/tests/constant_expressions_coalesce.phpt
Zend/tests/varSyntax/newVariable.phpt
Zend/zend_compile.c
ext/iconv/tests/eucjp2iso2022jp.phpt
tests/strings/offsets_general.phpt

index 6b6549d9358e3738759b5cc6a5833aa453b87b0d..8f74bccc075f03905d72011559d41d64e02456f3 100644 (file)
@@ -8,14 +8,7 @@ try {
 } catch (Error $e) {
     echo $e->getMessage(), "\n";
 }
-try {
-    $a{function() { }} = 1;
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
-}
 
 ?>
---EXPECTF--
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s on line %d
-Illegal offset type
+--EXPECT--
 Illegal offset type
diff --git a/Zend/tests/alternative_offset_syntax_compile_error_in_const_expr.phpt b/Zend/tests/alternative_offset_syntax_compile_error_in_const_expr.phpt
new file mode 100644 (file)
index 0000000..7001d92
--- /dev/null
@@ -0,0 +1,9 @@
+--TEST--
+Alternative offset syntax should emit E_COMPILE_ERROR in const expression
+--FILE--
+<?php
+const FOO_COMPILE_ERROR = "BAR"{0};
+var_dump(FOO_COMPILE_ERROR);
+?>
+--EXPECTF--
+Fatal error: Array and string offset access syntax with curly braces is no longer supported in %s on line 2
diff --git a/Zend/tests/alternative_offset_syntax_compile_error_outside_const_expr.phpt b/Zend/tests/alternative_offset_syntax_compile_error_outside_const_expr.phpt
new file mode 100644 (file)
index 0000000..c5e5848
--- /dev/null
@@ -0,0 +1,9 @@
+--TEST--
+Alternative offset syntax should emit E_COMPILE_ERROR outside const expression
+--FILE--
+<?php
+$foo = 'BAR';
+var_dump($foo{0});
+?>
+--EXPECTF--
+Fatal error: Array and string offset access syntax with curly braces is no longer supported in %s on line 3
index 27740aa72e704d08cec6197419aeef01540ee228..425aba69c403ee589e5b262311f38f007a95546e 100644 (file)
@@ -5,12 +5,6 @@ Constant expressions with null coalescing operator ??
 
 const A = [1 => [[]]];
 
-// should produce deprecation notices
-const D_1 = null ?? A[1]{'undefined'}['index'] ?? 1;
-const D_2 = null ?? A['undefined']{'index'} ?? 2;
-const D_3 = null ?? A[1]{0}{2} ?? 3; // 2 deprecation notices
-const D_4 = A[1]{0} ?? 4;
-
 const T_1 = null ?? A[1]['undefined']['index'] ?? 1;
 const T_2 = null ?? A['undefined']['index'] ?? 2;
 const T_3 = null ?? A[1][0][2] ?? 3;
@@ -18,11 +12,6 @@ const T_4 = A[1][0][2] ?? 4;
 const T_5 = null ?? __LINE__;
 const T_6 = __LINE__ ?? "bar";
 
-var_dump(D_1);
-var_dump(D_2);
-var_dump(D_3);
-var_dump(D_4);
-
 var_dump(T_1);
 var_dump(T_2);
 var_dump(T_3);
@@ -42,21 +31,6 @@ var_dump((new class { public $var = A[1][0][2] ?? 4; })->var);
 
 ?>
 --EXPECTF--
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-int(1)
-int(2)
-int(3)
-array(0) {
-}
 int(1)
 int(2)
 int(3)
index 5505ffc0f1961e281f287cd8b610fec777a85b93..97927ef43986bf186a589a28213f8406313251ac 100644 (file)
@@ -15,7 +15,6 @@ $weird = [0 => (object) ['foo' => 'Test']];
 
 var_dump(new $className);
 var_dump(new $array['className']);
-var_dump(new $array{'className'});
 var_dump(new $obj->className);
 var_dump(new Test::$className);
 var_dump(new $test::$className);
@@ -23,9 +22,6 @@ var_dump(new $weird[0]->foo::$className);
 
 ?>
 --EXPECTF--
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s on line %d
-object(stdClass)#%d (0) {
-}
 object(stdClass)#%d (0) {
 }
 object(stdClass)#%d (0) {
index 9206a15be5f4deeaee4022caa0b836af6b39aa2e..cc7eb6f1d59d356b6efa0444e4c69b07fe761725 100644 (file)
@@ -2626,9 +2626,8 @@ static inline void zend_emit_assign_znode(zend_ast *var_ast, znode *value_node)
 static zend_op *zend_delayed_compile_dim(znode *result, zend_ast *ast, uint32_t type) /* {{{ */
 {
        if (ast->attr == ZEND_DIM_ALTERNATIVE_SYNTAX) {
-               zend_error(E_DEPRECATED, "Array and string offset access syntax with curly braces is deprecated");
+               zend_error(E_COMPILE_ERROR, "Array and string offset access syntax with curly braces is no longer supported");
        }
-
        zend_ast *var_ast = ast->child[0];
        zend_ast *dim_ast = ast->child[1];
        zend_op *opline;
@@ -9183,7 +9182,7 @@ void zend_eval_const_expr(zend_ast **ast_ptr) /* {{{ */
 
                        if (ast->attr & ZEND_DIM_ALTERNATIVE_SYNTAX) {
                                ast->attr &= ~ZEND_DIM_ALTERNATIVE_SYNTAX; /* remove flag to avoid duplicate warning */
-                               zend_error(E_DEPRECATED, "Array and string offset access syntax with curly braces is deprecated");
+                               zend_error(E_COMPILE_ERROR, "Array and string offset access syntax with curly braces is no longer supported");
                        }
 
                        /* Set isset fetch indicator here, opcache disallows runtime altering of the AST */
index aacdc238c65c4291c2dff207a60c33fcdf978c32..30ff76e514d2dd734b24e079048f3e8a55b50aa5 100644 (file)
@@ -11,7 +11,7 @@ error_reporting=2039
 function hexdump($str) {
     $len = strlen($str);
     for ($i = 0; $i < $len; ++$i) {
-        printf("%02x", ord($str{$i}));
+        printf("%02x", ord($str[$i]));
     }
     print "\n";
 }
index b2ceea088a2f56929461fab7f84364c2f698a47a..7bbe9618d5b0a3d8ab13b24160cbae3c6cc72665 100644 (file)
@@ -12,34 +12,8 @@ var_dump(isset($string[0][0]));
 var_dump($string["foo"]);
 var_dump(isset($string["foo"]["bar"]));
 
-const FOO_DEPRECATED = "BAR"{0};
-var_dump(FOO_DEPRECATED);
-var_dump([$string{0}]); // 1 notice
-var_dump($string{1});
-var_dump(isset($string{0}));
-var_dump(isset($string{0}{0})); // 2 notices
-var_dump($string{"foo"});
-var_dump(isset($string{"foo"}{"bar"})); // 2 notices
 ?>
 --EXPECTF--
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
-
-Deprecated: Array and string offset access syntax with curly braces is deprecated in %s line %d
 string(1) "B"
 string(1) "f"
 string(1) "o"
@@ -49,15 +23,3 @@ bool(true)
 Warning: Illegal string offset 'foo' in %s line %d
 string(1) "f"
 bool(false)
-string(1) "B"
-array(1) {
-  [0]=>
-  string(1) "f"
-}
-string(1) "o"
-bool(true)
-bool(true)
-
-Warning: Illegal string offset 'foo' in %s line %d
-string(1) "f"
-bool(false)