Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Helpers.php

function Helpers::getContainingArrowFunctionIndex

*

Parameters

File $phpcsFile: * @param int $stackPtr * @param int $enclosingScopeIndex * * @return ?int

1 call to Helpers::getContainingArrowFunctionIndex()
Helpers::findVariableScope in vendor/sirbrillig/phpcs-variable-analysis/VariableAnalysis/Lib/Helpers.php
*

File

vendor/sirbrillig/phpcs-variable-analysis/VariableAnalysis/Lib/Helpers.php, line 645

Class

Helpers

Namespace

VariableAnalysis\Lib

Code

public static function getContainingArrowFunctionIndex(File $phpcsFile, $stackPtr, $enclosingScopeIndex) {
    $arrowFunctionIndex = self::getPreviousArrowFunctionIndex($phpcsFile, $stackPtr, $enclosingScopeIndex);
    if (!is_int($arrowFunctionIndex)) {
        return null;
    }
    $arrowFunctionInfo = self::getArrowFunctionOpenClose($phpcsFile, $arrowFunctionIndex);
    if (!$arrowFunctionInfo) {
        return null;
    }
    // We found the closest arrow function before this token. If the token is
    // within the scope of that arrow function, then return it.
    if ($stackPtr > $arrowFunctionInfo['scope_opener'] && $stackPtr < $arrowFunctionInfo['scope_closer']) {
        return $arrowFunctionIndex;
    }
    // If the token is after the scope of the closest arrow function, we may
    // still be inside the scope of a nested arrow function, so we need to
    // search further back until we are certain there are no more arrow
    // functions.
    if ($stackPtr > $arrowFunctionInfo['scope_closer']) {
        return self::getContainingArrowFunctionIndex($phpcsFile, $arrowFunctionIndex, $enclosingScopeIndex);
    }
    return null;
}
RSS feed
Powered by Drupal