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

Breadcrumb

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

function PhpDocParser::parseAssertParameter

*

Return value

array{parameter: string}|array{parameter: string, property: string}|array{parameter: string, method: string}

1 call to PhpDocParser::parseAssertParameter()
PhpDocParser::parseAssertTagValue in vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php
*

File

vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php, line 1208

Class

PhpDocParser
@phpstan-import-type ValueType from Doctrine\DoctrineArgument as DoctrineValueType

Namespace

PHPStan\PhpDocParser\Parser

Code

private function parseAssertParameter(TokenIterator $tokens) : array {
    if ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) {
        $parameter = '$this';
        $tokens->next();
    }
    else {
        $parameter = $tokens->currentTokenValue();
        $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE);
    }
    if ($tokens->isCurrentTokenType(Lexer::TOKEN_ARROW)) {
        $tokens->consumeTokenType(Lexer::TOKEN_ARROW);
        $propertyOrMethod = $tokens->currentTokenValue();
        $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER);
        if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) {
            $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES);
            return [
                'parameter' => $parameter,
                'method' => $propertyOrMethod,
            ];
        }
        return [
            'parameter' => $parameter,
            'property' => $propertyOrMethod,
        ];
    }
    return [
        'parameter' => $parameter,
    ];
}
RSS feed
Powered by Drupal