Skip to content

Commit 3733750

Browse files
committed
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: Don't unconditionally add array value type for undef
2 parents 6d04d16 + 6144524 commit 3733750

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

Zend/Optimizer/zend_inference.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ static uint32_t assign_dim_result_type(
21042104
* key type exists iff a value type exists even in dead code that may use empty types. */
21052105
if (value_type & (MAY_BE_ANY|MAY_BE_UNDEF)) {
21062106
if (value_type & MAY_BE_UNDEF) {
2107-
tmp |= MAY_BE_ARRAY_OF_NULL;
2107+
value_type |= MAY_BE_NULL;
21082108
}
21092109
if (dim_op_type == IS_UNUSED) {
21102110
tmp |= MAY_BE_HASH_ONLY(arr_type) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG;

ext/opcache/tests/invalid_array_key_type.phpt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ function test(\SplObjectStorage $definitions = null) {
1313
$definitions[$argument] = 1;
1414
$definitions[$argument] += 1;
1515
}
16+
function test2() {
17+
$a[[]] = $undef;
18+
}
1619

1720
?>
1821
===DONE===

0 commit comments

Comments
 (0)