[ticket/17512] Fix sniffer error

The error message was: $stackPtr is not a class member var

PHPBB-17512
This commit is contained in:
rxu 2025-05-15 17:41:50 +07:00
parent c01d1967dd
commit 146f917d19
No known key found for this signature in database
GPG key ID: 955F0567380E586A

View file

@ -38,7 +38,6 @@ class UnionTypesCheckSniff implements Sniff
public function process(File $phpcsFile, $stackPtr) public function process(File $phpcsFile, $stackPtr)
{ {
$tokens = $phpcsFile->getTokens(); $tokens = $phpcsFile->getTokens();
if ($tokens[$stackPtr]['type'] === 'T_FUNCTION') if ($tokens[$stackPtr]['type'] === 'T_FUNCTION')
{ {
$method_params = $phpcsFile->getMethodParameters($stackPtr); $method_params = $phpcsFile->getMethodParameters($stackPtr);
@ -53,15 +52,18 @@ class UnionTypesCheckSniff implements Sniff
} }
else if ($tokens[$stackPtr]['type'] === 'T_CLASS') else if ($tokens[$stackPtr]['type'] === 'T_CLASS')
{ {
$class_member_pointer = $phpcsFile->findNext(T_VARIABLE, $stackPtr); $class_token = $tokens[$stackPtr];
$class_closer_pointer = $class_token['scope_closer'];
$first_method_pointer = $phpcsFile->findNext(T_FUNCTION, $stackPtr); $first_method_pointer = $phpcsFile->findNext(T_FUNCTION, $stackPtr);
do $class_members_declarations_end_pointer = $first_method_pointer ?: $class_closer_pointer;
$stack_pointer = $stackPtr;
while(($class_member_pointer = $phpcsFile->findNext(T_VARIABLE, $stack_pointer)) !== false && ($class_member_pointer < $class_members_declarations_end_pointer))
{ {
$properties = $phpcsFile->getMemberProperties($class_member_pointer); $properties = $phpcsFile->getMemberProperties($class_member_pointer);
$this->check_union_type($phpcsFile, $class_member_pointer, $properties['type']); $this->check_union_type($phpcsFile, $class_member_pointer, $properties['type']);
$class_member_pointer = $phpcsFile->findNext(T_VARIABLE, $class_member_pointer + 1); $stack_pointer = $class_member_pointer + 1;
} }
while($class_member_pointer !== false && ($class_member_pointer < $first_method_pointer));
} }
} }