in src/Fixers/ClientUpgradeFixer/RpcMethod.php [100:123]
private function getSetterIndiciesFromInlineArray(Tokens $tokens, int $index, int $closeIndex)
{
$arrayEntries = $tokens->findGivenKind(T_DOUBLE_ARROW, $index, $closeIndex);
$nestedArrays = $tokens->findGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN, $index + 1, $closeIndex);
$nestedLegacyArrays = $tokens->findGivenKind(T_ARRAY, $index + 1, $closeIndex);
// skip nested arrays
foreach ($arrayEntries as $doubleArrowIndex => $doubleArrowIndexToken) {
foreach ($nestedArrays as $nestedArrayIndex => $nestedArrayIndexToken) {
$nestedArrayCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE, $nestedArrayIndex);
if ($doubleArrowIndex > $nestedArrayIndex && $doubleArrowIndex < $nestedArrayCloseIndex) {
unset($arrayEntries[$doubleArrowIndex]);
}
}
foreach ($nestedLegacyArrays as $nestedLegacyArrayIndex => $nestedLegacyArrayIndexToken) {
$nestedLegacyArrayCloseIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $nestedLegacyArrayIndex + 1);
if ($doubleArrowIndex > $nestedLegacyArrayIndex && $doubleArrowIndex < $nestedLegacyArrayCloseIndex) {
unset($arrayEntries[$doubleArrowIndex]);
}
}
}
return array_keys($arrayEntries);
}