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

Breadcrumb

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

function DuplicateAssignmentToVariableSniff::process

* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

Parameters

int $assignmentPointer:

Overrides Sniff::process

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Variables/DuplicateAssignmentToVariableSniff.php, line 34

Class

DuplicateAssignmentToVariableSniff

Namespace

SlevomatCodingStandard\Sniffs\Variables

Code

public function process(File $phpcsFile, $assignmentPointer) : void {
    $tokens = $phpcsFile->getTokens();
    $variablePointer = TokenHelper::findPreviousEffective($phpcsFile, $assignmentPointer - 1);
    if ($tokens[$variablePointer]['code'] !== T_VARIABLE) {
        return;
    }
    $pointerBeforeVariable = TokenHelper::findPreviousEffective($phpcsFile, $variablePointer - 1);
    if (in_array($tokens[$pointerBeforeVariable]['code'], [
        T_OBJECT_OPERATOR,
        T_DOUBLE_COLON,
    ], true)) {
        return;
    }
    
    /** @var int $secondVariablePointer */
    $secondVariablePointer = TokenHelper::findNextEffective($phpcsFile, $assignmentPointer + 1);
    if ($tokens[$secondVariablePointer]['code'] !== T_VARIABLE) {
        return;
    }
    if ($tokens[$variablePointer]['content'] !== $tokens[$secondVariablePointer]['content']) {
        return;
    }
    $pointerAfterSecondVariable = TokenHelper::findNextEffective($phpcsFile, $secondVariablePointer + 1);
    if ($tokens[$pointerAfterSecondVariable]['code'] !== T_EQUAL) {
        return;
    }
    $phpcsFile->addError(sprintf('Duplicate assignment to variable %s.', $tokens[$secondVariablePointer]['content']), $secondVariablePointer, self::CODE_DUPLICATE_ASSIGNMENT);
}
RSS feed
Powered by Drupal