diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2018-06-29 23:23:02 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-06-29 23:23:02 +0200 |
| commit | deb1bad80f7587856ecbb6e7f482205572588bef (patch) | |
| tree | 8f652cc6a9ae93263a3c325fa79bb411111825fb | |
| parent | 15ad5d31d19b52761338df75a4f22191f9506798 (diff) | |
| parent | 962706d16c29ec6dd5ec3a78edae9e8907bca20a (diff) | |
| download | php-git-deb1bad80f7587856ecbb6e7f482205572588bef.tar.gz | |
Merge branch 'PHP-7.1' into PHP-7.2
| -rw-r--r-- | Zend/tests/assert/expect_015.phpt | 4 | ||||
| -rw-r--r-- | Zend/zend_ast.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Zend/tests/assert/expect_015.phpt b/Zend/tests/assert/expect_015.phpt index 0c53c75c4d..1679640851 100644 --- a/Zend/tests/assert/expect_015.phpt +++ b/Zend/tests/assert/expect_015.phpt @@ -20,7 +20,7 @@ assert(0 && ($a = function () { yield from $x; })); -assert(0 && ($a = function &(array &$a, X $b = null) use ($c,&$d) : X { +assert(0 && ($a = function &(array &$a, ?X $b = null) use ($c,&$d) : ?X { abstract class A extends B implements C, D { const X = 12; const Y = self::X, Z = "aaa"; @@ -161,7 +161,7 @@ Warning: assert(): assert(0 && ($a = function () { yield from $x; })) failed in %sexpect_015.php on line %d -Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null) use($c, &$d): X { +Warning: assert(): assert(0 && ($a = function &(array &$a, ?X $b = null) use($c, &$d): ?X { abstract class A extends B implements C, D { const X = 12; const Y = self::X, Z = 'aaa'; diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index c0fdf48cba..b7aa87e2c5 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -1076,6 +1076,9 @@ tail_call: zend_ast_export_ex(str, decl->child[1], 0, indent); if (decl->child[3]) { smart_str_appends(str, ": "); + if (decl->child[3]->attr & ZEND_TYPE_NULLABLE) { + smart_str_appendc(str, '?'); + } zend_ast_export_ns_name(str, decl->child[3], 0, indent); } if (decl->child[2]) { @@ -1610,6 +1613,9 @@ simple_list: break; case ZEND_AST_PARAM: if (ast->child[0]) { + if (ast->child[0]->attr & ZEND_TYPE_NULLABLE) { + smart_str_appendc(str, '?'); + } zend_ast_export_ns_name(str, ast->child[0], 0, indent); smart_str_appendc(str, ' '); } |
