com php-src: Move =&new deprecation message into co mpiler: Zend/zend_compile.c Zend/zend_language_pa rser.y
| From: | Nikita Popov | Date: | Tue, 26 Aug 2014 21:36:53 +0000 |
| Subject: | com php-src: Move =&new deprecation message into co mpiler: Zend/zend_compile.c Zend/zend_language_pa rser.y | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-81136@lists.php.net to get a copy of this message | ||
Commit: f3b629c98205d35e48fd10980633212557345709
Author: Nikita Popov <nikic@php.net> Tue, 26 Aug 2014 22:53:41 +0200
Parents: e7f252652f6a3a54dfde5b66d778041f40c010de
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=f3b629c98205d35e48fd10980633212557345709
Log:
Move =&new deprecation message into compiler
Changed paths:
M Zend/zend_compile.c
M Zend/zend_language_parser.y
Diff:
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 545b840..b9b06f0 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -3879,6 +3879,7 @@ void zend_compile_assign_ref(znode *result, zend_ast *ast TSRMLS_DC) {
if (zend_is_call(source_ast)) {
opline->extended_value = ZEND_RETURNS_FUNCTION;
} else if (source_ast->kind == ZEND_AST_NEW) {
+ zend_error(E_DEPRECATED, "Assigning the return value of new by reference is
deprecated");
opline->extended_value = ZEND_RETURNS_NEW;
}
}
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 00ebeca...e86e5e2 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -760,10 +760,8 @@ expr_without_variable:
{ $$ = zend_ast_create(ZEND_AST_ASSIGN, $1, $3); }
| variable '=' '&' variable
{ $$ = zend_ast_create(ZEND_AST_ASSIGN_REF, $1, $4); }
- | variable '=' '&' T_NEW class_name_reference ctor_arguments
- { zend_error(E_DEPRECATED, "Assigning the return value of new by reference is
deprecated");
- $$ = zend_ast_create(ZEND_AST_ASSIGN_REF, $1,
- zend_ast_create(ZEND_AST_NEW, $5, $6)); }
+ | variable '=' '&' new_expr
+ { $$ = zend_ast_create(ZEND_AST_ASSIGN_REF, $1, $4); }
| T_CLONE expr { $$ = zend_ast_create(ZEND_AST_CLONE, $2); }
| variable T_PLUS_EQUAL expr
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_ADD, $1, $3); }