File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -1967,6 +1967,9 @@ static uint32_t assign_dim_array_result_type(
19671967 tmp |= MAY_BE_HASH_ONLY (arr_type ) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG ;
19681968 } else {
19691969 if (dim_type & (MAY_BE_LONG |MAY_BE_FALSE |MAY_BE_TRUE |MAY_BE_RESOURCE |MAY_BE_DOUBLE )) {
1970+ if (arr_type & (MAY_BE_UNDEF |MAY_BE_NULL |MAY_BE_FALSE )) {
1971+ tmp |= MAY_BE_ARRAY_PACKED ;
1972+ }
19701973 tmp |= MAY_BE_HASH_ONLY (arr_type ) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG ;
19711974 }
19721975 if (dim_type & MAY_BE_STRING ) {
Original file line number Diff line number Diff line change 1+ --TEST--
2+ Type inference 014: ASSIGN_DIM_OP
3+ --INI--
4+ opcache.enable=1
5+ opcache.enable_cli=1
6+ opcache.optimization_level=-1
7+ --FILE--
8+ <?php
9+ function y () {
10+ for (;;){
11+ $ x [y] &= y;
12+ $ x = false ;
13+ $ x ["" ]=y;
14+ }
15+ }
16+ ?>
17+ DONE
18+ --EXPECT--
19+ DONE
You can’t perform that action at this time.
0 commit comments