mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
Fixed bug #75608 ("Narrowing occurred during type inference" error)
This commit is contained in:
parent
1da28c55c4
commit
5934bff913
2
NEWS
2
NEWS
@ -19,6 +19,8 @@ PHP NEWS
|
||||
requests). (Remi)
|
||||
|
||||
- Opcache:
|
||||
. Fixed bug #75608 ("Narrowing occurred during type inference" error).
|
||||
(Laruence, Dmitry)
|
||||
. Fixed bug #75570 ("Narrowing occurred during type inference" error).
|
||||
(Dmitry)
|
||||
|
||||
|
@ -2928,7 +2928,7 @@ static int zend_update_type_info(const zend_op_array *op_array,
|
||||
break;
|
||||
case ZEND_FE_FETCH_R:
|
||||
case ZEND_FE_FETCH_RW:
|
||||
tmp = (t2 & MAY_BE_REF);
|
||||
tmp = t2;
|
||||
if (t1 & MAY_BE_OBJECT) {
|
||||
if (opline->opcode == ZEND_FE_FETCH_RW) {
|
||||
tmp |= MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF;
|
||||
@ -2953,7 +2953,7 @@ static int zend_update_type_info(const zend_op_array *op_array,
|
||||
}
|
||||
UPDATE_SSA_TYPE(tmp, ssa_ops[i].op2_def);
|
||||
if (ssa_ops[i].result_def >= 0) {
|
||||
tmp = 0;
|
||||
tmp = (ssa_ops[i].result_use >= 0) ? RES_USE_INFO() : 0;
|
||||
if (t1 & MAY_BE_OBJECT) {
|
||||
tmp |= MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF;
|
||||
}
|
||||
|
33
ext/opcache/tests/bug75608.phpt
Normal file
33
ext/opcache/tests/bug75608.phpt
Normal file
@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Bug #75608 ("Narrowing occurred during type inference" error)
|
||||
--FILE--
|
||||
<?php
|
||||
class ReactionRatingService
|
||||
{
|
||||
public function calculateBoostPoints()
|
||||
{
|
||||
while ($reaction = $reactions) {
|
||||
$reactionRatings = $this->validFunction();
|
||||
|
||||
$totalWeight = 0;
|
||||
$runningScore = 0;
|
||||
$queue = [];
|
||||
foreach ($reactionRatings as $ratingData) {
|
||||
if ($runningScore != $reaction['Score']) {
|
||||
if ( ! $ratingData['BoostEarned']) {
|
||||
$queue[] = $ratingData['UserID'];
|
||||
}
|
||||
} else {
|
||||
foreach ($queue as $userId) {
|
||||
$userBoostPointsRecalculate[$userId][] = $reaction['ID'];
|
||||
}
|
||||
}
|
||||
$totalWeight += $ratingData['Weight'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
OK
|
||||
--EXPECT--
|
||||
OK
|
Loading…
Reference in New Issue
Block a user