Skip to content

Commit

Permalink
Updated Rector to commit 56651d0
Browse files Browse the repository at this point in the history
rectorphp/rector-src@56651d0 use PHPStan 1.7.12, with new phpdoc-parser to fix endline issue
  • Loading branch information
TomasVotruba committed Jun 9, 2022
1 parent 2d4d997 commit 5953030
Show file tree
Hide file tree
Showing 19 changed files with 119 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,10 @@ private function isClosedContent(string $composedContent) : bool
return \true;
}
do {
if ($composedTokenIterator->isCurrentTokenTypes([Lexer::TOKEN_OPEN_CURLY_BRACKET, Lexer::TOKEN_OPEN_PARENTHESES]) || \strpos($composedTokenIterator->currentTokenValue(), '(') !== \false) {
if ($composedTokenIterator->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET, Lexer::TOKEN_OPEN_PARENTHESES) || \strpos($composedTokenIterator->currentTokenValue(), '(') !== \false) {
++$openBracketCount;
}
if ($composedTokenIterator->isCurrentTokenTypes([Lexer::TOKEN_CLOSE_CURLY_BRACKET, Lexer::TOKEN_CLOSE_PARENTHESES]) || \strpos($composedTokenIterator->currentTokenValue(), ')') !== \false) {
if ($composedTokenIterator->isCurrentTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET, Lexer::TOKEN_CLOSE_PARENTHESES) || \strpos($composedTokenIterator->currentTokenValue(), ')') !== \false) {
++$closeBracketCount;
}
$composedTokenIterator->next();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,11 @@ private function resolveArrayItem(BetterTokenIterator $tokenIterator) : array
$tokenIterator->next();
}
$tokenIterator->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL);
if ($tokenIterator->isCurrentTokenTypes([Lexer::TOKEN_CLOSE_CURLY_BRACKET, Lexer::TOKEN_COMMA])) {
if ($tokenIterator->isCurrentTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET, Lexer::TOKEN_COMMA)) {
// it's a value, not a key
return [null, $key];
}
if ($tokenIterator->isCurrentTokenTypes([Lexer::TOKEN_EQUAL, Lexer::TOKEN_COLON]) || $tokenIterator->isNextTokenTypes([Lexer::TOKEN_EQUAL, Lexer::TOKEN_COLON])) {
if ($tokenIterator->isCurrentTokenType(Lexer::TOKEN_EQUAL, Lexer::TOKEN_COLON) || $tokenIterator->isNextTokenTypes([Lexer::TOKEN_EQUAL, Lexer::TOKEN_COLON])) {
$tokenIterator->tryConsumeTokenType(Lexer::TOKEN_EQUAL);
$tokenIterator->tryConsumeTokenType(Lexer::TOKEN_COLON);
if ($key === null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,6 @@ public function isNextTokenTypes(array $types) : bool
}
return \false;
}
/**
* @param int[] $tokenTypes
*/
public function isCurrentTokenTypes(array $tokenTypes) : bool
{
foreach ($tokenTypes as $tokenType) {
if ($this->isCurrentTokenType($tokenType)) {
return \true;
}
}
return \false;
}
public function isTokenTypeOnPosition(int $tokenType, int $position) : bool
{
$tokens = $this->getTokens();
Expand Down
4 changes: 2 additions & 2 deletions src/Application/VersionResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = '78954bb4a3871a11871cfa373af759b6d8d07a0b';
public const PACKAGE_VERSION = '56651d0190ca04cdf0c33484d359ae197b455a15';
/**
* @var string
*/
public const RELEASE_DATE = '2022-06-09 13:46:03';
public const RELEASE_DATE = '2022-06-09 14:48:07';
/**
* @var int
*/
Expand Down
2 changes: 1 addition & 1 deletion vendor/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit99e00c5f7b719afdf225f9a55a4f9460::getLoader();
return ComposerAutoloaderInit6930d1fa9299558d56a84f8f1cd8fdcc::getLoader();
1 change: 1 addition & 0 deletions vendor/composer/autoload_classmap.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ThrowsTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypeAliasImportTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypeAliasTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypelessParamTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\UsesTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\VarTagValueNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\Type\\ArrayShapeItemNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php',
Expand Down
14 changes: 7 additions & 7 deletions vendor/composer/autoload_real.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

// autoload_real.php @generated by Composer

class ComposerAutoloaderInit99e00c5f7b719afdf225f9a55a4f9460
class ComposerAutoloaderInit6930d1fa9299558d56a84f8f1cd8fdcc
{
private static $loader;

Expand All @@ -22,19 +22,19 @@ public static function getLoader()
return self::$loader;
}

spl_autoload_register(array('ComposerAutoloaderInit99e00c5f7b719afdf225f9a55a4f9460', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit6930d1fa9299558d56a84f8f1cd8fdcc', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit99e00c5f7b719afdf225f9a55a4f9460', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit6930d1fa9299558d56a84f8f1cd8fdcc', 'loadClassLoader'));

require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc::getInitializer($loader));

$loader->setClassMapAuthoritative(true);
$loader->register(true);

$includeFiles = \Composer\Autoload\ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire99e00c5f7b719afdf225f9a55a4f9460($fileIdentifier, $file);
composerRequire6930d1fa9299558d56a84f8f1cd8fdcc($fileIdentifier, $file);
}

return $loader;
Expand All @@ -46,7 +46,7 @@ public static function getLoader()
* @param string $file
* @return void
*/
function composerRequire99e00c5f7b719afdf225f9a55a4f9460($fileIdentifier, $file)
function composerRequire6930d1fa9299558d56a84f8f1cd8fdcc($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
Expand Down
9 changes: 5 additions & 4 deletions vendor/composer/autoload_static.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Composer\Autoload;

class ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460
class ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc
{
public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
Expand Down Expand Up @@ -342,6 +342,7 @@ class ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\ThrowsTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypeAliasImportTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypeAliasTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\TypelessParamTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\UsesTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\PhpDoc\\VarTagValueNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php',
'PHPStan\\PhpDocParser\\Ast\\Type\\ArrayShapeItemNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php',
Expand Down Expand Up @@ -3390,9 +3391,9 @@ class ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit99e00c5f7b719afdf225f9a55a4f9460::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit6930d1fa9299558d56a84f8f1cd8fdcc::$classMap;

}, null, ClassLoader::class);
}
Expand Down
28 changes: 14 additions & 14 deletions vendor/composer/installed.json
Original file line number Diff line number Diff line change
Expand Up @@ -755,17 +755,17 @@
},
{
"name": "phpstan\/phpdoc-parser",
"version": "1.5.1",
"version_normalized": "1.5.1.0",
"version": "1.6.0",
"version_normalized": "1.6.0.0",
"source": {
"type": "git",
"url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git",
"reference": "981cc368a216c988e862a75e526b6076987d1b50"
"reference": "3cb62d10845338136ff4ba299ab0986bbf84ba77"
},
"dist": {
"type": "zip",
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/981cc368a216c988e862a75e526b6076987d1b50",
"reference": "981cc368a216c988e862a75e526b6076987d1b50",
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/3cb62d10845338136ff4ba299ab0986bbf84ba77",
"reference": "3cb62d10845338136ff4ba299ab0986bbf84ba77",
"shasum": ""
},
"require": {
Expand All @@ -779,7 +779,7 @@
"phpunit\/phpunit": "^9.5",
"symfony\/process": "^5.2"
},
"time": "2022-05-05T11:32:40+00:00",
"time": "2022-06-09T09:45:59+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
Expand All @@ -796,23 +796,23 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https:\/\/github.com\/phpstan\/phpdoc-parser\/issues",
"source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.5.1"
"source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.6.0"
},
"install-path": "..\/phpstan\/phpdoc-parser"
},
{
"name": "phpstan\/phpstan",
"version": "1.7.11",
"version_normalized": "1.7.11.0",
"version": "1.7.12",
"version_normalized": "1.7.12.0",
"source": {
"type": "git",
"url": "https:\/\/github.com\/phpstan\/phpstan.git",
"reference": "62fcadcde81b4037e42ad2489119d31c46f00191"
"reference": "32f10779d9cd88a9cbd972ec611a4148a3cbbc7e"
},
"dist": {
"type": "zip",
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/62fcadcde81b4037e42ad2489119d31c46f00191",
"reference": "62fcadcde81b4037e42ad2489119d31c46f00191",
"url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/32f10779d9cd88a9cbd972ec611a4148a3cbbc7e",
"reference": "32f10779d9cd88a9cbd972ec611a4148a3cbbc7e",
"shasum": ""
},
"require": {
Expand All @@ -821,7 +821,7 @@
"conflict": {
"phpstan\/phpstan-shim": "*"
},
"time": "2022-06-07T08:47:03+00:00",
"time": "2022-06-09T12:39:36+00:00",
"bin": [
"phpstan",
"phpstan.phar"
Expand All @@ -840,7 +840,7 @@
"description": "PHPStan - PHP Static Analysis Tool",
"support": {
"issues": "https:\/\/github.com\/phpstan\/phpstan\/issues",
"source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.7.11"
"source": "https:\/\/github.com\/phpstan\/phpstan\/tree\/1.7.12"
},
"funding": [
{
Expand Down
2 changes: 1 addition & 1 deletion vendor/composer/installed.php

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,15 @@ public function getParamTagValues(string $tagName = '@param') : array
return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode;
});
}
/**
* @return TypelessParamTagValueNode[]
*/
public function getTypelessParamTagValues(string $tagName = '@param') : array
{
return array_filter(array_column($this->getTagsByName($tagName), 'value'), static function (\PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode $value) : bool {
return $value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\TypelessParamTagValueNode;
});
}
/**
* @return TemplateTagValueNode[]
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

declare (strict_types=1);
namespace PHPStan\PhpDocParser\Ast\PhpDoc;

use PHPStan\PhpDocParser\Ast\NodeAttributes;
use function trim;
class TypelessParamTagValueNode implements \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode
{
use NodeAttributes;
/** @var bool */
public $isReference;
/** @var bool */
public $isVariadic;
/** @var string */
public $parameterName;
/** @var string (may be empty) */
public $description;
public function __construct(bool $isVariadic, string $parameterName, string $description, bool $isReference = \false)
{
$this->isReference = $isReference;
$this->isVariadic = $isVariadic;
$this->parameterName = $parameterName;
$this->description = $description;
}
public function __toString() : string
{
$reference = $this->isReference ? '&' : '';
$variadic = $this->isVariadic ? '...' : '';
return trim("{$reference}{$variadic}{$this->parameterName} {$this->description}");
}
}
27 changes: 22 additions & 5 deletions vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ class PhpDocParser
private $typeParser;
/** @var ConstExprParser */
private $constantExprParser;
public function __construct(\PHPStan\PhpDocParser\Parser\TypeParser $typeParser, \PHPStan\PhpDocParser\Parser\ConstExprParser $constantExprParser)
/** @var bool */
private $requireWhitespaceBeforeDescription;
public function __construct(\PHPStan\PhpDocParser\Parser\TypeParser $typeParser, \PHPStan\PhpDocParser\Parser\ConstExprParser $constantExprParser, bool $requireWhitespaceBeforeDescription = \false)
{
$this->typeParser = $typeParser;
$this->constantExprParser = $constantExprParser;
$this->requireWhitespaceBeforeDescription = $requireWhitespaceBeforeDescription;
}
public function parse(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\PhpDocNode
{
Expand Down Expand Up @@ -65,7 +68,7 @@ private function parseText(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) :
}
$tokens->pushSavePoint();
$tokens->next();
if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG) || $tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL) || $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC) || $tokens->isCurrentTokenType(Lexer::TOKEN_END)) {
if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END)) {
$tokens->rollback();
break;
}
Expand Down Expand Up @@ -177,14 +180,24 @@ public function parseTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens
}
return $tagValue;
}
private function parseParamTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\ParamTagValueNode
/**
* @return Ast\PhpDoc\ParamTagValueNode|Ast\PhpDoc\TypelessParamTagValueNode
*/
private function parseParamTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\PhpDocTagValueNode
{
$type = $this->typeParser->parse($tokens);
if ($tokens->isCurrentTokenType(Lexer::TOKEN_REFERENCE) || $tokens->isCurrentTokenType(Lexer::TOKEN_VARIADIC) || $tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) {
$type = null;
} else {
$type = $this->typeParser->parse($tokens);
}
$isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE);
$isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC);
$parameterName = $this->parseRequiredVariableName($tokens);
$description = $this->parseOptionalDescription($tokens);
return new Ast\PhpDoc\ParamTagValueNode($type, $isVariadic, $parameterName, $description, $isReference);
if ($type !== null) {
return new Ast\PhpDoc\ParamTagValueNode($type, $isVariadic, $parameterName, $description, $isReference);
}
return new Ast\PhpDoc\TypelessParamTagValueNode($isVariadic, $parameterName, $description, $isReference);
}
private function parseVarTagValue(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\PhpDoc\VarTagValueNode
{
Expand Down Expand Up @@ -364,6 +377,10 @@ private function parseOptionalDescription(\PHPStan\PhpDocParser\Parser\TokenIter
$tokens->consumeTokenType(Lexer::TOKEN_OTHER);
// will throw exception
}
if ($this->requireWhitespaceBeforeDescription && !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END) && !$tokens->isPrecededByHorizontalWhitespace()) {
$tokens->consumeTokenType(Lexer::TOKEN_HORIZONTAL_WS);
// will throw exception
}
}
return $this->parseText($tokens)->text;
}
Expand Down
4 changes: 2 additions & 2 deletions vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ public function isCurrentTokenValue(string $tokenValue) : bool
{
return $this->tokens[$this->index][Lexer::VALUE_OFFSET] === $tokenValue;
}
public function isCurrentTokenType(int $tokenType) : bool
public function isCurrentTokenType(int ...$tokenType) : bool
{
return $this->tokens[$this->index][Lexer::TYPE_OFFSET] === $tokenType;
return in_array($this->tokens[$this->index][Lexer::TYPE_OFFSET], $tokenType, \true);
}
public function isPrecededByHorizontalWhitespace() : bool
{
Expand Down
11 changes: 1 addition & 10 deletions vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -210,16 +210,7 @@ private function parseConditionalForParameter(\PHPStan\PhpDocParser\Parser\Token
private function parseNullable(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : Ast\Type\TypeNode
{
$tokens->consumeTokenType(Lexer::TOKEN_NULLABLE);
$type = new Ast\Type\IdentifierTypeNode($tokens->currentTokenValue());
$tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER);
if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) {
$type = $this->parseGeneric($tokens, $type);
} elseif ($type->name === 'array' && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) {
$type = $this->parseArrayShape($tokens, $type);
}
if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) {
$type = $this->tryParseArrayOrOffsetAccess($tokens, $type);
}
$type = $this->parseAtomic($tokens);
return new Ast\Type\NullableTypeNode($type);
}
/** @phpstan-impure */
Expand Down
Binary file modified vendor/phpstan/phpstan/phpstan.phar
Binary file not shown.
Loading

0 comments on commit 5953030

Please sign in to comment.