Skip to content

Commit

Permalink
Set inside_isset false when analyzing ArrayDimFetch dim
Browse files Browse the repository at this point in the history
  • Loading branch information
edsrzf committed Feb 26, 2024
1 parent 71707e6 commit 10ed0f3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,19 @@ public static function analyze(
$was_inside_unset = $context->inside_unset;
$context->inside_unset = false;

$was_inside_isset = $context->inside_isset;
$context->inside_isset = false;

if (ExpressionAnalyzer::analyze($statements_analyzer, $stmt->dim, $context) === false) {
$context->inside_isset = $was_inside_isset;
$context->inside_unset = $was_inside_unset;
$context->inside_general_use = $was_inside_general_use;

return false;
}

$context->inside_isset = $was_inside_isset;

$context->inside_unset = $was_inside_unset;

$context->inside_general_use = $was_inside_general_use;
Expand Down
5 changes: 5 additions & 0 deletions tests/ArrayAccessTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1281,6 +1281,11 @@ function return_array() {
echo $a[0];',
'error_message' => 'PossiblyInvalidArrayAccess',
],
'insideIssetDisabledForDim' => [
'code' => '<?php
isset($a[$b]);',
'error_message' => 'UndefinedGlobalVariable',
],
'mixedArrayAccess' => [
'code' => '<?php
/** @var mixed */
Expand Down

0 comments on commit 10ed0f3

Please sign in to comment.