1
0
mirror of https://github.com/php/php-src.git synced 2026-04-24 08:28:26 +02:00

Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix typo in UPGRADING
  Improved error message for typed class properties with null as default value
This commit is contained in:
Nikita Popov
2020-11-03 09:35:20 +01:00
2 changed files with 20 additions and 2 deletions
@@ -0,0 +1,15 @@
--TEST--
Nullable default property error message
--FILE--
<?php
class A {
public string|int $b = null;
}
$t = new A;
$t->b;
?>
--EXPECTF--
Fatal error: Default value for property of type string|int may not be null. Use the nullable type string|int|null to allow null default value in %s on line %d
+5 -2
View File
@@ -7042,10 +7042,13 @@ void zend_compile_prop_decl(zend_ast *ast, zend_ast *type_ast, uint32_t flags, z
&& !zend_is_valid_default_value(type, &value_zv)) {
zend_string *str = zend_type_to_string(type);
if (Z_TYPE(value_zv) == IS_NULL) {
ZEND_TYPE_FULL_MASK(type) |= MAY_BE_NULL;
zend_string *nullable_str = zend_type_to_string(type);
zend_error_noreturn(E_COMPILE_ERROR,
"Default value for property of type %s may not be null. "
"Use the nullable type ?%s to allow null default value",
ZSTR_VAL(str), ZSTR_VAL(str));
"Use the nullable type %s to allow null default value",
ZSTR_VAL(str), ZSTR_VAL(nullable_str));
} else {
zend_error_noreturn(E_COMPILE_ERROR,
"Cannot use %s as default value for property %s::$%s of type %s",