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

Breadcrumb

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

function UnusedVariableSniff::isUsedAsKeyOrValueInArray

1 call to UnusedVariableSniff::isUsedAsKeyOrValueInArray()
UnusedVariableSniff::process in vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Variables/UnusedVariableSniff.php
* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Variables/UnusedVariableSniff.php, line 480

Class

UnusedVariableSniff

Namespace

SlevomatCodingStandard\Sniffs\Variables

Code

private function isUsedAsKeyOrValueInArray(File $phpcsFile, int $variablePointer) : bool {
    $tokens = $phpcsFile->getTokens();
    $squareBracketOpenerPointer = TokenHelper::findPrevious($phpcsFile, T_OPEN_SQUARE_BRACKET, $variablePointer - 1);
    if ($squareBracketOpenerPointer !== null && $tokens[$squareBracketOpenerPointer]['bracket_closer'] > $variablePointer) {
        return true;
    }
    $arrayOpenerPointer = TokenHelper::findPrevious($phpcsFile, T_OPEN_SHORT_ARRAY, $variablePointer - 1);
    if ($arrayOpenerPointer === null) {
        return false;
    }
    $arrayCloserPointer = $tokens[$arrayOpenerPointer]['bracket_closer'];
    if ($arrayCloserPointer < $variablePointer) {
        return false;
    }
    $pointerAfterArrayCloser = TokenHelper::findNextEffective($phpcsFile, $arrayCloserPointer + 1);
    if ($tokens[$pointerAfterArrayCloser]['code'] === T_EQUAL) {
        return false;
    }
    $pointerBeforeVariable = TokenHelper::findPreviousEffective($phpcsFile, $variablePointer - 1);
    if (in_array($tokens[$pointerBeforeVariable]['code'], [
        T_INC,
        T_DEC,
    ], true)) {
        $pointerBeforeVariable = TokenHelper::findPreviousEffective($phpcsFile, $pointerBeforeVariable - 1);
    }
    return in_array($tokens[$pointerBeforeVariable]['code'], [
        T_OPEN_SHORT_ARRAY,
        T_COMMA,
        T_DOUBLE_ARROW,
    ], true);
}
RSS feed
Powered by Drupal