From c8aee19deb338484cd2971fd7efa66d8a680ca36 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Fri, 15 Sep 2023 18:23:25 +0900 Subject: [PATCH] composer local test update --- composer.lock | 216 +- vendor/composer/autoload_classmap.php | 3 +- vendor/composer/autoload_static.php | 3 +- vendor/composer/installed.json | 248 +- vendor/composer/installed.php | 100 +- vendor/composer/semver/CHANGELOG.md | 5 + vendor/composer/semver/README.md | 7 +- vendor/composer/semver/composer.json | 2 +- vendor/composer/semver/phpstan-baseline.neon | 11 + vendor/composer/semver/src/VersionParser.php | 24 +- vendor/doctrine/deprecations/composer.json | 20 +- .../lib/Doctrine/Deprecations/Deprecation.php | 72 +- vendor/doctrine/deprecations/phpstan.neon | 9 + vendor/doctrine/deprecations/psalm.xml | 30 + vendor/nikic/php-parser/grammar/php5.y | 2 +- vendor/nikic/php-parser/grammar/php7.y | 16 +- .../lib/PhpParser/Builder/ClassConst.php | 18 +- .../lib/PhpParser/BuilderFactory.php | 6 +- .../Internal/PrintableNewAnonClassNode.php | 9 +- .../PhpParser/Node/Expr/ClassConstFetch.php | 10 +- .../php-parser/lib/PhpParser/Node/Name.php | 14 +- .../lib/PhpParser/Node/Stmt/ClassConst.php | 19 +- .../php-parser/lib/PhpParser/Parser/Php5.php | 2 +- .../php-parser/lib/PhpParser/Parser/Php7.php | 2610 +++++++++-------- .../lib/PhpParser/PrettyPrinter/Standard.php | 27 +- .../lib/PhpParser/PrettyPrinterAbstract.php | 69 +- .../src/Types/ContextFactory.php | 1 + vendor/phpstan/phpdoc-parser/README.md | 2 + vendor/phpstan/phpdoc-parser/composer.json | 1 + .../ConstExpr/DoctrineConstExprStringNode.php | 42 + .../PhpDoc/Doctrine/DoctrineAnnotation.php | 35 + .../Ast/PhpDoc/Doctrine/DoctrineArgument.php | 43 + .../src/Ast/PhpDoc/Doctrine/DoctrineArray.php | 32 + .../Ast/PhpDoc/Doctrine/DoctrineArrayItem.php | 47 + .../PhpDoc/Doctrine/DoctrineTagValueNode.php | 36 + .../src/Ast/PhpDoc/PhpDocTagNode.php | 5 + .../phpstan/phpdoc-parser/src/Lexer/Lexer.php | 61 +- .../src/Parser/ConstExprParser.php | 84 +- .../phpdoc-parser/src/Parser/PhpDocParser.php | 539 +++- .../src/Parser/TokenIterator.php | 102 +- .../phpdoc-parser/src/Parser/TypeParser.php | 91 +- .../phpdoc-parser/src/Printer/Printer.php | 33 +- vendor/phpstan/phpstan/phpstan.phar | Bin 21742779 -> 22055884 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- .../php-code-coverage/ChangeLog-9.2.md | 19 + .../phpunit/php-code-coverage/composer.json | 3 +- .../php-code-coverage/src/CodeCoverage.php | 39 +- .../php-code-coverage/src/Report/Clover.php | 5 +- .../src/Report/Cobertura.php | 5 +- .../php-code-coverage/src/Report/Crap4j.php | 5 +- .../php-code-coverage/src/Report/PHP.php | 7 +- .../src/Report/Xml/Tests.php | 1 - .../src/StaticAnalysis/CacheWarmer.php | 4 +- .../StaticAnalysis/CachingFileAnalyser.php | 43 +- .../ExecutableLinesFindingVisitor.php | 1 + .../phpunit/php-code-coverage/src/Version.php | 2 +- vendor/phpunit/phpunit/ChangeLog-9.6.md | 29 + vendor/phpunit/phpunit/DEPRECATIONS.md | 89 + vendor/phpunit/phpunit/README.md | 2 +- vendor/phpunit/phpunit/composer.json | 2 +- vendor/phpunit/phpunit/phpunit.xsd | 2 +- .../phpunit/phpunit/src/Framework/Assert.php | 239 +- .../src/Framework/Assert/Functions.php | 38 +- .../Constraint/Cardinality/Count.php | 6 +- .../Constraint/Cardinality/IsEmpty.php | 2 +- .../src/Framework/Constraint/Constraint.php | 9 +- .../Framework/Constraint/Equality/IsEqual.php | 14 +- .../Equality/IsEqualCanonicalizing.php | 10 +- .../Equality/IsEqualIgnoringCase.php | 10 +- .../Constraint/Equality/IsEqualWithDelta.php | 8 +- .../Constraint/Exception/Exception.php | 6 +- .../Constraint/Exception/ExceptionCode.php | 2 +- .../Constraint/Exception/ExceptionMessage.php | 4 +- .../ExceptionMessageRegularExpression.php | 4 +- .../Constraint/Filesystem/DirectoryExists.php | 2 +- .../Constraint/Filesystem/FileExists.php | 2 +- .../Constraint/Filesystem/IsReadable.php | 2 +- .../Constraint/Filesystem/IsWritable.php | 2 +- .../src/Framework/Constraint/IsIdentical.php | 4 +- .../src/Framework/Constraint/JsonMatches.php | 9 +- .../Constraint/Object/ClassHasAttribute.php | 6 +- .../Object/ClassHasStaticAttribute.php | 4 +- .../Constraint/Object/ObjectEquals.php | 18 +- .../Constraint/Object/ObjectHasProperty.php | 84 + .../Constraint/Operator/LogicalNot.php | 6 +- .../Constraint/Operator/LogicalXor.php | 2 +- .../Framework/Constraint/String/IsJson.php | 4 +- .../Constraint/String/RegularExpression.php | 2 +- .../Constraint/String/StringContains.php | 2 +- .../String/StringMatchesFormatDescription.php | 8 +- .../Constraint/String/StringStartsWith.php | 3 +- .../Traversable/TraversableContains.php | 2 +- .../Traversable/TraversableContainsOnly.php | 2 +- .../Constraint/Type/IsInstanceOf.php | 4 +- .../src/Framework/Constraint/Type/IsType.php | 6 +- .../phpunit/src/Framework/ErrorTestCase.php | 6 +- .../ActualValueIsNotAnObjectException.php | 2 +- ...hodDoesNotAcceptParameterTypeException.php | 4 +- ...dDoesNotDeclareBoolReturnTypeException.php | 4 +- ...NotDeclareExactlyOneParameterException.php | 4 +- ...odDoesNotDeclareParameterTypeException.php | 4 +- .../ComparisonMethodDoesNotExistException.php | 4 +- .../Exception/InvalidArgumentException.php | 4 +- .../Framework/ExecutionOrderDependency.php | 8 +- .../src/Framework/IncompleteTestCase.php | 6 +- .../src/Framework/MockObject/Api/Api.php | 4 +- .../src/Framework/MockObject/Api/Method.php | 2 +- .../MockObject/Builder/InvocationMocker.php | 4 +- .../MockObject/Builder/InvocationStubber.php | 16 +- .../CannotUseAddMethodsException.php | 4 +- .../CannotUseOnlyMethodsException.php | 4 +- .../Exception/ClassAlreadyExistsException.php | 4 +- .../Exception/ClassIsFinalException.php | 4 +- .../Exception/ClassIsReadonlyException.php | 4 +- .../Exception/DuplicateMethodException.php | 4 +- .../IncompatibleReturnValueException.php | 4 +- .../Exception/InvalidMethodNameException.php | 4 +- .../MatchBuilderNotFoundException.php | 4 +- .../MatcherAlreadyRegisteredException.php | 4 +- .../MethodCannotBeConfiguredException.php | 4 +- .../ReturnValueNotConfiguredException.php | 4 +- .../SoapExtensionNotAvailableException.php | 2 +- .../Exception/UnknownClassException.php | 4 +- .../Exception/UnknownTraitException.php | 4 +- .../Exception/UnknownTypeException.php | 4 +- .../src/Framework/MockObject/Generator.php | 92 +- .../src/Framework/MockObject/Invocation.php | 14 +- .../MockObject/InvocationHandler.php | 2 +- .../src/Framework/MockObject/Matcher.php | 20 +- .../MockObject/MethodNameConstraint.php | 2 +- .../src/Framework/MockObject/MockBuilder.php | 14 +- .../src/Framework/MockObject/MockClass.php | 2 +- .../src/Framework/MockObject/MockMethod.php | 22 +- .../MockObject/Rule/ConsecutiveParameters.php | 12 +- .../MockObject/Rule/InvokedAtIndex.php | 4 +- .../MockObject/Rule/InvokedAtLeastCount.php | 2 +- .../MockObject/Rule/InvokedAtLeastOnce.php | 2 +- .../MockObject/Rule/InvokedAtMostCount.php | 2 +- .../MockObject/Rule/InvokedCount.php | 6 +- .../Framework/MockObject/Rule/Parameters.php | 8 +- .../MockObject/Stub/ConsecutiveCalls.php | 2 +- .../Framework/MockObject/Stub/Exception.php | 2 +- .../MockObject/Stub/ReturnCallback.php | 2 +- .../MockObject/Stub/ReturnReference.php | 2 +- .../Framework/MockObject/Stub/ReturnStub.php | 2 +- .../phpunit/src/Framework/SkippedTestCase.php | 6 +- .../phpunit/src/Framework/TestBuilder.php | 32 +- .../phpunit/src/Framework/TestCase.php | 164 +- .../phpunit/src/Framework/TestFailure.php | 2 +- .../phpunit/src/Framework/TestResult.php | 68 +- .../phpunit/src/Framework/TestSuite.php | 62 +- .../src/Framework/TestSuiteIterator.php | 2 +- .../phpunit/src/Framework/WarningTestCase.php | 6 +- .../phpunit/src/Runner/BaseTestRunner.php | 6 +- .../src/Runner/DefaultTestResultCache.php | 10 +- .../src/Runner/Extension/ExtensionHandler.php | 14 +- .../src/Runner/Extension/PharLoader.php | 23 +- .../phpunit/src/Runner/Filter/Factory.php | 4 +- .../src/Runner/Filter/GroupFilterIterator.php | 2 +- .../src/Runner/Filter/NameFilterIterator.php | 10 +- .../phpunit/src/Runner/PhptTestCase.php | 22 +- .../src/Runner/StandardTestSuiteLoader.php | 28 +- .../phpunit/src/Runner/TestSuiteSorter.php | 10 +- vendor/phpunit/phpunit/src/Runner/Version.php | 2 +- .../src/TextUI/CliArguments/Builder.php | 6 +- vendor/phpunit/phpunit/src/TextUI/Command.php | 74 +- .../src/TextUI/DefaultResultPrinter.php | 40 +- .../TestDirectoryNotFoundException.php | 4 +- .../Exception/TestFileNotFoundException.php | 4 +- vendor/phpunit/phpunit/src/TextUI/Help.php | 2 +- .../phpunit/phpunit/src/TextUI/TestRunner.php | 108 +- .../phpunit/src/TextUI/TestSuiteMapper.php | 4 +- .../CodeCoverage/CodeCoverage.php | 16 +- .../CodeCoverage/FilterMapper.php | 4 +- .../src/TextUI/XmlConfiguration/Generator.php | 2 +- .../src/TextUI/XmlConfiguration/Loader.php | 160 +- .../Migration/MigrationBuilder.php | 6 +- .../Migrations/IntroduceCoverageElement.php | 2 +- .../Migrations/LogToReportMigration.php | 2 +- .../MoveWhitelistExcludesToCoverage.php | 2 +- ...hp => MoveWhitelistIncludesToCoverage.php} | 8 +- .../Migrations/UpdateSchemaLocationTo93.php | 2 +- .../XmlConfiguration/Migration/Migrator.php | 4 +- .../XmlConfiguration/PHP/PhpHandler.php | 2 +- .../phpunit/src/Util/Annotation/DocBlock.php | 30 +- .../phpunit/src/Util/Annotation/Registry.php | 4 +- vendor/phpunit/phpunit/src/Util/Color.php | 2 +- .../phpunit/phpunit/src/Util/ErrorHandler.php | 2 +- .../phpunit/phpunit/src/Util/ExcludeList.php | 4 +- .../phpunit/phpunit/src/Util/FileLoader.php | 2 +- .../phpunit/phpunit/src/Util/Filesystem.php | 2 +- vendor/phpunit/phpunit/src/Util/Filter.php | 4 +- .../phpunit/phpunit/src/Util/GlobalState.php | 8 +- vendor/phpunit/phpunit/src/Util/Json.php | 2 +- vendor/phpunit/phpunit/src/Util/Log/JUnit.php | 30 +- .../phpunit/phpunit/src/Util/Log/TeamCity.php | 12 +- .../src/Util/PHP/AbstractPhpProcess.php | 36 +- .../src/Util/PHP/DefaultPhpProcess.php | 10 +- .../src/Util/PHP/WindowsPhpProcess.php | 2 +- vendor/phpunit/phpunit/src/Util/Printer.php | 8 +- .../phpunit/src/Util/RegularExpression.php | 2 +- vendor/phpunit/phpunit/src/Util/Test.php | 54 +- .../src/Util/TestDox/CliTestDoxPrinter.php | 2 +- .../src/Util/TestDox/HtmlResultPrinter.php | 8 +- .../src/Util/TestDox/NamePrettifier.php | 6 +- .../src/Util/TestDox/TestDoxPrinter.php | 4 +- .../src/Util/TestDox/XmlResultPrinter.php | 6 +- .../phpunit/src/Util/TextTestListRenderer.php | 4 +- .../src/Util/VersionComparisonOperator.php | 4 +- .../src/Util/XdebugFilterScriptGenerator.php | 6 +- vendor/phpunit/phpunit/src/Util/Xml.php | 6 +- .../phpunit/phpunit/src/Util/Xml/Loader.php | 8 +- .../phpunit/src/Util/Xml/SchemaDetector.php | 2 +- .../phpunit/src/Util/Xml/SchemaFinder.php | 4 +- .../phpunit/src/Util/XmlTestListRenderer.php | 4 +- vendor/sebastian/global-state/ChangeLog.md | 7 + .../sebastian/global-state/src/Restorer.php | 4 +- .../console/Formatter/OutputFormatter.php | 11 +- .../console/Output/ConsoleSectionOutput.php | 15 +- vendor/symfony/polyfill-ctype/LICENSE | 2 +- vendor/symfony/polyfill-ctype/composer.json | 2 +- vendor/symfony/polyfill-intl-grapheme/LICENSE | 2 +- .../polyfill-intl-grapheme/composer.json | 2 +- .../symfony/polyfill-intl-normalizer/LICENSE | 2 +- .../polyfill-intl-normalizer/composer.json | 2 +- vendor/symfony/polyfill-mbstring/LICENSE | 2 +- vendor/symfony/polyfill-mbstring/Mbstring.php | 87 +- .../Resources/unidata/caseFolding.php | 119 + .../symfony/polyfill-mbstring/bootstrap.php | 4 + .../symfony/polyfill-mbstring/bootstrap80.php | 4 + .../symfony/polyfill-mbstring/composer.json | 2 +- vendor/symfony/polyfill-php80/LICENSE | 2 +- vendor/symfony/polyfill-php80/composer.json | 2 +- .../string/Inflector/EnglishInflector.php | 9 + 234 files changed, 4549 insertions(+), 2798 deletions(-) create mode 100644 vendor/composer/semver/phpstan-baseline.neon create mode 100644 vendor/doctrine/deprecations/phpstan.neon create mode 100644 vendor/doctrine/deprecations/psalm.xml create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php create mode 100644 vendor/phpunit/phpunit/DEPRECATIONS.md create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php rename vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/{MoveWhitelistDirectoriesToCoverage.php => MoveWhitelistIncludesToCoverage.php} (83%) create mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php diff --git a/composer.lock b/composer.lock index 128b755a..ddb43aa2 100644 --- a/composer.lock +++ b/composer.lock @@ -80,16 +80,16 @@ }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -139,9 +139,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -157,7 +157,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/xdebug-handler", @@ -227,25 +227,29 @@ }, { "name": "doctrine/deprecations", - "version": "v1.1.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "8cffffb2218e01f3b370bf763e00e81697725259" + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/8cffffb2218e01f3b370bf763e00e81697725259", - "reference": "8cffffb2218e01f3b370bf763e00e81697725259", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -264,9 +268,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.0" + "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" }, - "time": "2023-05-29T18:55:17+00:00" + "time": "2023-06-03T09:27:29+00:00" }, { "name": "doctrine/instantiator", @@ -540,16 +544,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.5", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -590,9 +594,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, - "time": "2023-05-19T20:20:00+00:00" + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phan/phan", @@ -896,16 +900,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.2", + "version": "1.7.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", "shasum": "" }, "require": { @@ -948,28 +952,29 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" }, - "time": "2023-05-30T18:13:47+00:00" + "time": "2023-08-12T11:01:26+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.21.3", + "version": "1.24.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "b0c366dd2cea79407d635839d25423ba07c55dd6" + "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b0c366dd2cea79407d635839d25423ba07c55dd6", - "reference": "b0c366dd2cea79407d635839d25423ba07c55dd6", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3510b0a6274cc42f7219367cb3abfc123ffa09d6", + "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", @@ -994,22 +999,22 @@ "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.21.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.0" }, - "time": "2023-05-29T19:31:28+00:00" + "time": "2023-09-07T20:46:32+00:00" }, { "name": "phpstan/phpstan", - "version": "1.10.15", + "version": "1.10.34", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd" + "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/762c4dac4da6f8756eebb80e528c3a47855da9bd", - "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7f806b6f1403e6914c778140e2ba07c293cb4901", + "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901", "shasum": "" }, "require": { @@ -1058,20 +1063,20 @@ "type": "tidelift" } ], - "time": "2023-05-09T15:28:01+00:00" + "time": "2023-09-13T09:49:47+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", + "version": "9.2.28", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef", + "reference": "7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef", "shasum": "" }, "require": { @@ -1127,7 +1132,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.28" }, "funding": [ { @@ -1135,7 +1141,7 @@ "type": "github" } ], - "time": "2023-03-06T12:58:08+00:00" + "time": "2023-09-12T14:36:20+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1380,16 +1386,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.8", + "version": "9.6.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" + "reference": "a122c2ebd469b751d774aa0f613dc0d67697653f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a122c2ebd469b751d774aa0f613dc0d67697653f", + "reference": "a122c2ebd469b751d774aa0f613dc0d67697653f", "shasum": "" }, "require": { @@ -1404,7 +1410,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1463,7 +1469,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.12" }, "funding": [ { @@ -1479,7 +1485,7 @@ "type": "tidelift" } ], - "time": "2023-05-11T05:14:45+00:00" + "time": "2023-09-12T14:39:31+00:00" }, { "name": "psr/container", @@ -2156,16 +2162,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { @@ -2208,7 +2214,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" }, "funding": [ { @@ -2216,7 +2222,7 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2023-08-02T09:26:13+00:00" }, { "name": "sebastian/lines-of-code", @@ -2616,16 +2622,16 @@ }, { "name": "symfony/console", - "version": "v6.3.0", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { @@ -2686,7 +2692,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.0" + "source": "https://github.com/symfony/console/tree/v6.3.4" }, "funding": [ { @@ -2702,7 +2708,7 @@ "type": "tidelift" } ], - "time": "2023-05-29T12:49:39+00:00" + "time": "2023-08-16T10:10:12+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2773,16 +2779,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -2797,7 +2803,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2835,7 +2841,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -2851,20 +2857,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -2876,7 +2882,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2916,7 +2922,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -2932,20 +2938,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -2957,7 +2963,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3000,7 +3006,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -3016,20 +3022,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -3044,7 +3050,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3083,7 +3089,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -3099,20 +3105,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -3121,7 +3127,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3166,7 +3172,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -3182,7 +3188,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", @@ -3268,16 +3274,16 @@ }, { "name": "symfony/string", - "version": "v6.3.0", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + "reference": "53d1a83225002635bca3482fcbf963001313fb68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", + "reference": "53d1a83225002635bca3482fcbf963001313fb68", "shasum": "" }, "require": { @@ -3334,7 +3340,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.0" + "source": "https://github.com/symfony/string/tree/v6.3.2" }, "funding": [ { @@ -3350,7 +3356,7 @@ "type": "tidelift" } ], - "time": "2023-03-21T21:06:29+00:00" + "time": "2023-07-05T08:41:27+00:00" }, { "name": "theseer/tokenizer", diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 7ec556ed..2948ab3f 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -60,6 +60,7 @@ return array( 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php', 'PHPUnit\\Framework\\Constraint\\ObjectEquals' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php', 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php', 'PHPUnit\\Framework\\Constraint\\Operator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php', 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php', 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php', @@ -290,8 +291,8 @@ return array( 'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistIncludesToCoverage' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Php' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php', 'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => $vendorDir . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 6ae435f2..aa63a77c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -248,6 +248,7 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php', 'PHPUnit\\Framework\\Constraint\\ObjectEquals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php', 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php', 'PHPUnit\\Framework\\Constraint\\Operator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php', 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php', 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php', @@ -478,8 +479,8 @@ class ComposerStaticInitdd705c6e8ab22e0d642372dec7767718 'PHPUnit\\TextUI\\XmlConfiguration\\Migrator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromFilterWhitelistToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromFilterWhitelistToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveAttributesFromRootToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveAttributesFromRootToCoverage.php', - 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistDirectoriesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistExcludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php', + 'PHPUnit\\TextUI\\XmlConfiguration\\MoveWhitelistIncludesToCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php', 'PHPUnit\\TextUI\\XmlConfiguration\\PHPUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHPUnit/PHPUnit.php', 'PHPUnit\\TextUI\\XmlConfiguration\\Php' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/Php.php', 'PHPUnit\\TextUI\\XmlConfiguration\\PhpHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 3608fa66..de880439 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -76,17 +76,17 @@ }, { "name": "composer/semver", - "version": "3.3.2", - "version_normalized": "3.3.2.0", + "version": "3.4.0", + "version_normalized": "3.4.0.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -96,7 +96,7 @@ "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, - "time": "2022-04-01T19:23:25+00:00", + "time": "2023-08-31T09:50:34+00:00", "type": "library", "extra": { "branch-alias": { @@ -138,9 +138,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -229,31 +229,35 @@ }, { "name": "doctrine/deprecations", - "version": "v1.1.0", - "version_normalized": "1.1.0.0", + "version": "v1.1.1", + "version_normalized": "1.1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "8cffffb2218e01f3b370bf763e00e81697725259" + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/8cffffb2218e01f3b370bf763e00e81697725259", - "reference": "8cffffb2218e01f3b370bf763e00e81697725259", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, - "time": "2023-05-29T18:55:17+00:00", + "time": "2023-06-03T09:27:29+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -269,7 +273,7 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.0" + "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" }, "install-path": "../doctrine/deprecations" }, @@ -560,17 +564,17 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.5", - "version_normalized": "4.15.5.0", + "version": "v4.17.1", + "version_normalized": "4.17.1.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -581,7 +585,7 @@ "ircmaxell/php-yacc": "^0.0.7", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "time": "2023-05-19T20:20:00+00:00", + "time": "2023-08-13T19:53:39+00:00", "bin": [ "bin/php-parse" ], @@ -613,7 +617,7 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, "install-path": "../nikic/php-parser" }, @@ -934,17 +938,17 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.2", - "version_normalized": "1.7.2.0", + "version": "1.7.3", + "version_normalized": "1.7.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", "shasum": "" }, "require": { @@ -963,7 +967,7 @@ "rector/rector": "^0.13.9", "vimeo/psalm": "^4.25" }, - "time": "2023-05-30T18:13:47+00:00", + "time": "2023-08-12T11:01:26+00:00", "type": "library", "extra": { "branch-alias": { @@ -989,29 +993,30 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" }, "install-path": "../phpdocumentor/type-resolver" }, { "name": "phpstan/phpdoc-parser", - "version": "1.21.3", - "version_normalized": "1.21.3.0", + "version": "1.24.0", + "version_normalized": "1.24.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "b0c366dd2cea79407d635839d25423ba07c55dd6" + "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b0c366dd2cea79407d635839d25423ba07c55dd6", - "reference": "b0c366dd2cea79407d635839d25423ba07c55dd6", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3510b0a6274cc42f7219367cb3abfc123ffa09d6", + "reference": "3510b0a6274cc42f7219367cb3abfc123ffa09d6", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", @@ -1021,7 +1026,7 @@ "phpunit/phpunit": "^9.5", "symfony/process": "^5.2" }, - "time": "2023-05-29T19:31:28+00:00", + "time": "2023-09-07T20:46:32+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1038,23 +1043,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.21.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.0" }, "install-path": "../phpstan/phpdoc-parser" }, { "name": "phpstan/phpstan", - "version": "1.10.15", - "version_normalized": "1.10.15.0", + "version": "1.10.34", + "version_normalized": "1.10.34.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd" + "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/762c4dac4da6f8756eebb80e528c3a47855da9bd", - "reference": "762c4dac4da6f8756eebb80e528c3a47855da9bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7f806b6f1403e6914c778140e2ba07c293cb4901", + "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901", "shasum": "" }, "require": { @@ -1063,7 +1068,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2023-05-09T15:28:01+00:00", + "time": "2023-09-13T09:49:47+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -1109,17 +1114,17 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", - "version_normalized": "9.2.26.0", + "version": "9.2.28", + "version_normalized": "9.2.28.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef", + "reference": "7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef", "shasum": "" }, "require": { @@ -1144,7 +1149,7 @@ "ext-pcov": "PHP extension that provides line coverage", "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, - "time": "2023-03-06T12:58:08+00:00", + "time": "2023-09-12T14:36:20+00:00", "type": "library", "extra": { "branch-alias": { @@ -1177,7 +1182,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.28" }, "funding": [ { @@ -1442,17 +1448,17 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.8", - "version_normalized": "9.6.8.0", + "version": "9.6.12", + "version_normalized": "9.6.12.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" + "reference": "a122c2ebd469b751d774aa0f613dc0d67697653f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a122c2ebd469b751d774aa0f613dc0d67697653f", + "reference": "a122c2ebd469b751d774aa0f613dc0d67697653f", "shasum": "" }, "require": { @@ -1467,7 +1473,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -1488,7 +1494,7 @@ "ext-soap": "To be able to generate mocks based on WSDL files", "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, - "time": "2023-05-11T05:14:45+00:00", + "time": "2023-09-12T14:39:31+00:00", "bin": [ "phpunit" ], @@ -1528,7 +1534,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.12" }, "funding": [ { @@ -2254,17 +2260,17 @@ }, { "name": "sebastian/global-state", - "version": "5.0.5", - "version_normalized": "5.0.5.0", + "version": "5.0.6", + "version_normalized": "5.0.6.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { @@ -2279,7 +2285,7 @@ "suggest": { "ext-uopz": "*" }, - "time": "2022-02-14T08:28:10+00:00", + "time": "2023-08-02T09:26:13+00:00", "type": "library", "extra": { "branch-alias": { @@ -2309,7 +2315,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" }, "funding": [ { @@ -2738,17 +2744,17 @@ }, { "name": "symfony/console", - "version": "v6.3.0", - "version_normalized": "6.3.0.0", + "version": "v6.3.4", + "version_normalized": "6.3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", - "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { @@ -2777,7 +2783,7 @@ "symfony/process": "^5.4|^6.0", "symfony/var-dumper": "^5.4|^6.0" }, - "time": "2023-05-29T12:49:39+00:00", + "time": "2023-08-16T10:10:12+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2811,7 +2817,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.0" + "source": "https://github.com/symfony/console/tree/v6.3.4" }, "funding": [ { @@ -2901,17 +2907,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -2923,11 +2929,11 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2966,7 +2972,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -2986,17 +2992,17 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -3005,11 +3011,11 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3050,7 +3056,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -3070,17 +3076,17 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -3089,11 +3095,11 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3137,7 +3143,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -3157,17 +3163,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -3179,11 +3185,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-07-28T09:04:16+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3223,7 +3229,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -3243,27 +3249,27 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3309,7 +3315,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -3414,17 +3420,17 @@ }, { "name": "symfony/string", - "version": "v6.3.0", - "version_normalized": "6.3.0.0", + "version": "v6.3.2", + "version_normalized": "6.3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + "reference": "53d1a83225002635bca3482fcbf963001313fb68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", - "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "url": "https://api.github.com/repos/symfony/string/zipball/53d1a83225002635bca3482fcbf963001313fb68", + "reference": "53d1a83225002635bca3482fcbf963001313fb68", "shasum": "" }, "require": { @@ -3444,7 +3450,7 @@ "symfony/translation-contracts": "^2.5|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, - "time": "2023-03-21T21:06:29+00:00", + "time": "2023-07-05T08:41:27+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -3483,7 +3489,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.0" + "source": "https://github.com/symfony/string/tree/v6.3.2" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 118a15df..a2bfe2e9 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '513b115d5729d1001743baf12d8991cc385b20d9', + 'reference' => '74c8b8d71e6f3d439d5e98d4299924c367274ef4', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '513b115d5729d1001743baf12d8991cc385b20d9', + 'reference' => '74c8b8d71e6f3d439d5e98d4299924c367274ef4', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -29,9 +29,9 @@ 'dev_requirement' => true, ), 'composer/semver' => array( - 'pretty_version' => '3.3.2', - 'version' => '3.3.2.0', - 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', + 'pretty_version' => '3.4.0', + 'version' => '3.4.0.0', + 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), @@ -47,9 +47,9 @@ 'dev_requirement' => true, ), 'doctrine/deprecations' => array( - 'pretty_version' => 'v1.1.0', - 'version' => '1.1.0.0', - 'reference' => '8cffffb2218e01f3b370bf763e00e81697725259', + 'pretty_version' => 'v1.1.1', + 'version' => '1.1.1.0', + 'reference' => '612a3ee5ab0d5dd97b7cf3874a6efe24325efac3', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/deprecations', 'aliases' => array(), @@ -101,9 +101,9 @@ 'dev_requirement' => true, ), 'nikic/php-parser' => array( - 'pretty_version' => 'v4.15.5', - 'version' => '4.15.5.0', - 'reference' => '11e2663a5bc9db5d714eedb4277ee300403b4a9e', + 'pretty_version' => 'v4.17.1', + 'version' => '4.17.1.0', + 'reference' => 'a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), @@ -155,36 +155,36 @@ 'dev_requirement' => true, ), 'phpdocumentor/type-resolver' => array( - 'pretty_version' => '1.7.2', - 'version' => '1.7.2.0', - 'reference' => 'b2fe4d22a5426f38e014855322200b97b5362c0d', + 'pretty_version' => '1.7.3', + 'version' => '1.7.3.0', + 'reference' => '3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419', 'type' => 'library', 'install_path' => __DIR__ . '/../phpdocumentor/type-resolver', 'aliases' => array(), 'dev_requirement' => true, ), 'phpstan/phpdoc-parser' => array( - 'pretty_version' => '1.21.3', - 'version' => '1.21.3.0', - 'reference' => 'b0c366dd2cea79407d635839d25423ba07c55dd6', + 'pretty_version' => '1.24.0', + 'version' => '1.24.0.0', + 'reference' => '3510b0a6274cc42f7219367cb3abfc123ffa09d6', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => true, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.15', - 'version' => '1.10.15.0', - 'reference' => '762c4dac4da6f8756eebb80e528c3a47855da9bd', + 'pretty_version' => '1.10.34', + 'version' => '1.10.34.0', + 'reference' => '7f806b6f1403e6914c778140e2ba07c293cb4901', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => true, ), 'phpunit/php-code-coverage' => array( - 'pretty_version' => '9.2.26', - 'version' => '9.2.26.0', - 'reference' => '443bc6912c9bd5b409254a40f4b0f4ced7c80ea1', + 'pretty_version' => '9.2.28', + 'version' => '9.2.28.0', + 'reference' => '7134a5ccaaf0f1c92a4f5501a6c9f98ac4dcc0ef', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/php-code-coverage', 'aliases' => array(), @@ -227,9 +227,9 @@ 'dev_requirement' => true, ), 'phpunit/phpunit' => array( - 'pretty_version' => '9.6.8', - 'version' => '9.6.8.0', - 'reference' => '17d621b3aff84d0c8b62539e269e87d8d5baa76e', + 'pretty_version' => '9.6.12', + 'version' => '9.6.12.0', + 'reference' => 'a122c2ebd469b751d774aa0f613dc0d67697653f', 'type' => 'library', 'install_path' => __DIR__ . '/../phpunit/phpunit', 'aliases' => array(), @@ -341,9 +341,9 @@ 'dev_requirement' => true, ), 'sebastian/global-state' => array( - 'pretty_version' => '5.0.5', - 'version' => '5.0.5.0', - 'reference' => '0ca8db5a5fc9c8646244e629625ac486fa286bf2', + 'pretty_version' => '5.0.6', + 'version' => '5.0.6.0', + 'reference' => 'bde739e7565280bda77be70044ac1047bc007e34', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/global-state', 'aliases' => array(), @@ -413,9 +413,9 @@ 'dev_requirement' => true, ), 'symfony/console' => array( - 'pretty_version' => 'v6.3.0', - 'version' => '6.3.0.0', - 'reference' => '8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7', + 'pretty_version' => 'v6.3.4', + 'version' => '6.3.4.0', + 'reference' => 'eca495f2ee845130855ddf1cf18460c38966c8b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -431,45 +431,45 @@ 'dev_requirement' => true, ), 'symfony/polyfill-ctype' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => 'ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-intl-grapheme' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '875e90aeea2777b6f135677f618529449334a612', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-intl-normalizer' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-mbstring' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '42292d99c55abe617799667f454222c54c60e229', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => true, ), 'symfony/polyfill-php80' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '6caa57379c4aec19c0a12a38b59b26487dcfe4b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), @@ -485,9 +485,9 @@ 'dev_requirement' => true, ), 'symfony/string' => array( - 'pretty_version' => 'v6.3.0', - 'version' => '6.3.0.0', - 'reference' => 'f2e190ee75ff0f5eced645ec0be5c66fac81f51f', + 'pretty_version' => 'v6.3.2', + 'version' => '6.3.2.0', + 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), diff --git a/vendor/composer/semver/CHANGELOG.md b/vendor/composer/semver/CHANGELOG.md index c9514773..3b111612 100644 --- a/vendor/composer/semver/CHANGELOG.md +++ b/vendor/composer/semver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +### [3.4.0] 2023-08-31 + + * Support larger major version numbers (#149) + ### [3.3.2] 2022-04-01 * Fixed handling of non-string values (#134) @@ -175,6 +179,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint` * Changed: code style using php-cs-fixer. +[3.4.0]: https://github.com/composer/semver/compare/3.3.2...3.4.0 [3.3.2]: https://github.com/composer/semver/compare/3.3.1...3.3.2 [3.3.1]: https://github.com/composer/semver/compare/3.3.0...3.3.1 [3.3.0]: https://github.com/composer/semver/compare/3.2.9...3.3.0 diff --git a/vendor/composer/semver/README.md b/vendor/composer/semver/README.md index 35db99a5..76778490 100644 --- a/vendor/composer/semver/README.md +++ b/vendor/composer/semver/README.md @@ -6,8 +6,9 @@ Semver (Semantic Versioning) library that offers utilities, version constraint p Originally written as part of [composer/composer](https://github.com/composer/composer), now extracted and made available as a stand-alone library. -[![Continuous Integration](https://github.com/composer/semver/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/composer/semver/actions) - +[![Continuous Integration](https://github.com/composer/semver/actions/workflows/continuous-integration.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/continuous-integration.yml) +[![PHP Lint](https://github.com/composer/semver/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/lint.yml) +[![PHPStan](https://github.com/composer/semver/actions/workflows/phpstan.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/phpstan.yml) Installation ------------ @@ -15,7 +16,7 @@ Installation Install the latest version with: ```bash -$ composer require composer/semver +composer require composer/semver ``` diff --git a/vendor/composer/semver/composer.json b/vendor/composer/semver/composer.json index ba78676d..f3a6f4cc 100644 --- a/vendor/composer/semver/composer.json +++ b/vendor/composer/semver/composer.json @@ -27,7 +27,7 @@ } ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues" }, "require": { diff --git a/vendor/composer/semver/phpstan-baseline.neon b/vendor/composer/semver/phpstan-baseline.neon new file mode 100644 index 00000000..933cf203 --- /dev/null +++ b/vendor/composer/semver/phpstan-baseline.neon @@ -0,0 +1,11 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$operator of class Composer\\\\Semver\\\\Constraint\\\\Constraint constructor expects '\\!\\='\\|'\\<'\\|'\\<\\='\\|'\\<\\>'\\|'\\='\\|'\\=\\='\\|'\\>'\\|'\\>\\=', non\\-falsy\\-string given\\.$#" + count: 1 + path: src/VersionParser.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and non\\-empty\\-string will always evaluate to false\\.$#" + count: 2 + path: src/VersionParser.php diff --git a/vendor/composer/semver/src/VersionParser.php b/vendor/composer/semver/src/VersionParser.php index 202ce247..9318629a 100644 --- a/vendor/composer/semver/src/VersionParser.php +++ b/vendor/composer/semver/src/VersionParser.php @@ -134,15 +134,15 @@ class VersionParser } // match classical versioning - if (preg_match('{^v?(\d{1,5})(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { + if (preg_match('{^v?(\d{1,5}+)(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { $version = $matches[1] . (!empty($matches[2]) ? $matches[2] : '.0') . (!empty($matches[3]) ? $matches[3] : '.0') . (!empty($matches[4]) ? $matches[4] : '.0'); $index = 5; // match date(time) based versioning - } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3})?)' . self::$modifierRegex . '$}i', $version, $matches)) { - $version = preg_replace('{\D}', '.', $matches[1]); + } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3}){0,2})' . self::$modifierRegex . '$}i', $version, $matches)) { + $version = (string) preg_replace('{\D}', '.', $matches[1]); $index = 2; } @@ -260,16 +260,16 @@ class VersionParser } $orGroups = array(); - foreach ($orConstraints as $constraints) { - $andConstraints = preg_split('{(?< ,]) *(?< ,]) *(? 1) { $constraintObjects = array(); - foreach ($andConstraints as $constraint) { - foreach ($this->parseConstraint($constraint) as $parsedConstraint) { - $constraintObjects[] = $parsedConstraint; + foreach ($andConstraints as $andConstraint) { + foreach ($this->parseConstraint($andConstraint) as $parsedAndConstraint) { + $constraintObjects[] = $parsedAndConstraint; } } } else { @@ -285,11 +285,11 @@ class VersionParser $orGroups[] = $constraint; } - $constraint = MultiConstraint::create($orGroups, false); + $parsedConstraint = MultiConstraint::create($orGroups, false); - $constraint->setPrettyString($prettyConstraint); + $parsedConstraint->setPrettyString($prettyConstraint); - return $constraint; + return $parsedConstraint; } /** diff --git a/vendor/doctrine/deprecations/composer.json b/vendor/doctrine/deprecations/composer.json index c79e38cd..f8319f9a 100644 --- a/vendor/doctrine/deprecations/composer.json +++ b/vendor/doctrine/deprecations/composer.json @@ -1,22 +1,28 @@ { "name": "doctrine/deprecations", - "type": "library", "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", "license": "MIT", + "type": "library", + "homepage": "https://www.doctrine-project.org/", "require": { - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3", - "doctrine/coding-standard": "^9" + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, "autoload": { - "psr-4": {"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"} + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } }, "autoload-dev": { "psr-4": { diff --git a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php index 6c76d984..07cb43b6 100644 --- a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php +++ b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php @@ -8,6 +8,7 @@ use Psr\Log\LoggerInterface; use function array_key_exists; use function array_reduce; +use function assert; use function debug_backtrace; use function sprintf; use function strpos; @@ -46,7 +47,7 @@ class Deprecation private const TYPE_TRIGGER_ERROR = 2; private const TYPE_PSR_LOGGER = 4; - /** @var self::TYPE_*|null */ + /** @var int-mask-of|null */ private static $type; /** @var LoggerInterface|null */ @@ -56,6 +57,9 @@ class Deprecation private static $ignoredPackages = []; /** @var array */ + private static $triggeredDeprecations = []; + + /** @var array */ private static $ignoredLinks = []; /** @var bool */ @@ -68,7 +72,7 @@ class Deprecation * deprecation. It is additionally used to de-duplicate the trigger of the * same deprecation during a request. * - * @param mixed $args + * @param float|int|string $args */ public static function trigger(string $package, string $link, string $message, ...$args): void { @@ -78,13 +82,17 @@ class Deprecation return; } - if (array_key_exists($link, self::$ignoredLinks)) { - self::$ignoredLinks[$link]++; - } else { - self::$ignoredLinks[$link] = 1; + if (isset(self::$ignoredLinks[$link])) { + return; } - if (self::$deduplication === true && self::$ignoredLinks[$link] > 1) { + if (array_key_exists($link, self::$triggeredDeprecations)) { + self::$triggeredDeprecations[$link]++; + } else { + self::$triggeredDeprecations[$link] = 1; + } + + if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { return; } @@ -116,7 +124,7 @@ class Deprecation * deprecation tracking is enabled even during deduplication, because it * needs to call {@link debug_backtrace()} * - * @param mixed $args + * @param float|int|string $args */ public static function triggerIfCalledFromOutside(string $package, string $link, string $message, ...$args): void { @@ -129,7 +137,7 @@ class Deprecation $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); // first check that the caller is not from a tests folder, in which case we always let deprecations pass - if (strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) { + if (isset($backtrace[1]['file'], $backtrace[0]['file']) && strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) { $path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR; if (strpos($backtrace[0]['file'], $path) === false) { @@ -141,13 +149,17 @@ class Deprecation } } - if (array_key_exists($link, self::$ignoredLinks)) { - self::$ignoredLinks[$link]++; - } else { - self::$ignoredLinks[$link] = 1; + if (isset(self::$ignoredLinks[$link])) { + return; } - if (self::$deduplication === true && self::$ignoredLinks[$link] > 1) { + if (array_key_exists($link, self::$triggeredDeprecations)) { + self::$triggeredDeprecations[$link]++; + } else { + self::$triggeredDeprecations[$link] = 1; + } + + if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { return; } @@ -161,7 +173,7 @@ class Deprecation } /** - * @param array $backtrace + * @param list $backtrace */ private static function delegateTriggerToBackend(string $message, array $backtrace, string $link, string $package): void { @@ -169,12 +181,14 @@ class Deprecation if (($type & self::TYPE_PSR_LOGGER) > 0) { $context = [ - 'file' => $backtrace[0]['file'], - 'line' => $backtrace[0]['line'], + 'file' => $backtrace[0]['file'] ?? null, + 'line' => $backtrace[0]['line'] ?? null, 'package' => $package, 'link' => $link, ]; + assert(self::$logger !== null); + self::$logger->notice($message, $context); } @@ -184,10 +198,10 @@ class Deprecation $message .= sprintf( ' (%s:%d called by %s:%d, %s, package %s)', - self::basename($backtrace[0]['file']), - $backtrace[0]['line'], - self::basename($backtrace[1]['file']), - $backtrace[1]['line'], + self::basename($backtrace[0]['file'] ?? 'native code'), + $backtrace[0]['line'] ?? 0, + self::basename($backtrace[1]['file'] ?? 'native code'), + $backtrace[1]['line'] ?? 0, $link, $package ); @@ -211,16 +225,19 @@ class Deprecation public static function enableTrackingDeprecations(): void { + self::$type = self::$type ?? 0; self::$type |= self::TYPE_TRACK_DEPRECATIONS; } public static function enableWithTriggerError(): void { + self::$type = self::$type ?? 0; self::$type |= self::TYPE_TRIGGER_ERROR; } public static function enableWithPsrLogger(LoggerInterface $logger): void { + self::$type = self::$type ?? 0; self::$type |= self::TYPE_PSR_LOGGER; self::$logger = $logger; } @@ -235,9 +252,10 @@ class Deprecation self::$type = self::TYPE_NONE; self::$logger = null; self::$deduplication = true; + self::$ignoredLinks = []; - foreach (self::$ignoredLinks as $link => $count) { - self::$ignoredLinks[$link] = 0; + foreach (self::$triggeredDeprecations as $link => $count) { + self::$triggeredDeprecations[$link] = 0; } } @@ -249,13 +267,13 @@ class Deprecation public static function ignoreDeprecations(string ...$links): void { foreach ($links as $link) { - self::$ignoredLinks[$link] = 0; + self::$ignoredLinks[$link] = true; } } public static function getUniqueTriggeredDeprecationsCount(): int { - return array_reduce(self::$ignoredLinks, static function (int $carry, int $count) { + return array_reduce(self::$triggeredDeprecations, static function (int $carry, int $count) { return $carry + $count; }, 0); } @@ -267,11 +285,11 @@ class Deprecation */ public static function getTriggeredDeprecations(): array { - return self::$ignoredLinks; + return self::$triggeredDeprecations; } /** - * @return self::TYPE_* + * @return int-mask-of */ private static function getTypeFromEnv(): int { diff --git a/vendor/doctrine/deprecations/phpstan.neon b/vendor/doctrine/deprecations/phpstan.neon new file mode 100644 index 00000000..4ee286b8 --- /dev/null +++ b/vendor/doctrine/deprecations/phpstan.neon @@ -0,0 +1,9 @@ +parameters: + level: 6 + paths: + - lib + - tests + +includes: + - vendor/phpstan/phpstan-phpunit/extension.neon + - vendor/phpstan/phpstan-phpunit/rules.neon diff --git a/vendor/doctrine/deprecations/psalm.xml b/vendor/doctrine/deprecations/psalm.xml new file mode 100644 index 00000000..ad76e32e --- /dev/null +++ b/vendor/doctrine/deprecations/psalm.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/nikic/php-parser/grammar/php5.y b/vendor/nikic/php-parser/grammar/php5.y index 2920dead..77e4fb7e 100644 --- a/vendor/nikic/php-parser/grammar/php5.y +++ b/vendor/nikic/php-parser/grammar/php5.y @@ -1008,7 +1008,7 @@ array_pair: | expr { $$ = Expr\ArrayItem[$1, null, false]; } | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } | ampersand variable { $$ = Expr\ArrayItem[$2, null, true]; } - | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } + | T_ELLIPSIS expr { $$ = new Expr\ArrayItem($2, null, false, attributes(), true); } ; encaps_list: diff --git a/vendor/nikic/php-parser/grammar/php7.y b/vendor/nikic/php-parser/grammar/php7.y index fc7862c3..1ef60bfe 100644 --- a/vendor/nikic/php-parser/grammar/php7.y +++ b/vendor/nikic/php-parser/grammar/php7.y @@ -221,7 +221,10 @@ non_empty_class_const_list: ; class_const: - identifier_maybe_reserved '=' expr { $$ = Node\Const_[$1, $3]; } + T_STRING '=' expr + { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; } + | semi_reserved '=' expr + { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; } ; inner_statement_list_ex: @@ -722,6 +725,9 @@ class_statement: | optional_attributes method_modifiers T_CONST class_const_list semi { $$ = new Stmt\ClassConst($4, $2, attributes(), $1); $this->checkClassConst($$, #2); } + | optional_attributes method_modifiers T_CONST type_expr class_const_list semi + { $$ = new Stmt\ClassConst($5, $2, attributes(), $1, $4); + $this->checkClassConst($$, #2); } | optional_attributes method_modifiers T_FUNCTION optional_ref identifier_maybe_reserved '(' parameter_list ')' optional_return_type method_body { $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; @@ -943,8 +949,8 @@ expr: ; anonymous_class: - optional_attributes T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); + optional_attributes class_entry_type ctor_arguments extends_from implements_list '{' class_statement_list '}' + { $$ = array(Stmt\Class_[null, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); $this->checkClass($$[0], -1); } ; @@ -1040,6 +1046,8 @@ constant: class_constant: class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved { $$ = Expr\ClassConstFetch[$1, $3]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' + { $$ = Expr\ClassConstFetch[$1, $4]; } /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be an unfinished static property fetch or unfinished scoped call. */ | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error @@ -1194,7 +1202,7 @@ array_pair: | expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | T_ELLIPSIS expr { $$ = Expr\ArrayItem[$2, null, false, attributes(), true]; } + | T_ELLIPSIS expr { $$ = new Expr\ArrayItem($2, null, false, attributes(), true); } | /* empty */ { $$ = null; } ; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php b/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php index f616c627..a7fe129b 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php @@ -19,6 +19,8 @@ class ClassConst implements PhpParser\Builder /** @var Node\AttributeGroup[] */ protected $attributeGroups = []; + /** @var Identifier|Node\Name|Node\ComplexType */ + protected $type; /** * Creates a class constant builder @@ -116,6 +118,19 @@ class ClassConst implements PhpParser\Builder return $this; } + /** + * Sets the constant type. + * + * @param string|Node\Name|Identifier|Node\ComplexType $type + * + * @return $this + */ + public function setType($type) { + $this->type = BuilderHelpers::normalizeType($type); + + return $this; + } + /** * Returns the built class node. * @@ -126,7 +141,8 @@ class ClassConst implements PhpParser\Builder $this->constants, $this->flags, $this->attributes, - $this->attributeGroups + $this->attributeGroups, + $this->type ); } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php index fef2579b..af010e02 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ b/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php @@ -349,15 +349,15 @@ class BuilderFactory /** * Creates a class constant fetch node. * - * @param string|Name|Expr $class Class name - * @param string|Identifier $name Constant name + * @param string|Name|Expr $class Class name + * @param string|Identifier|Expr $name Constant name * * @return Expr\ClassConstFetch */ public function classConstFetch($class, $name): Expr\ClassConstFetch { return new Expr\ClassConstFetch( BuilderHelpers::normalizeNameOrExpr($class), - BuilderHelpers::normalizeIdentifier($name) + BuilderHelpers::normalizeIdentifierOrExpr($name) ); } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index 3eeac04a..67632270 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -19,6 +19,8 @@ class PrintableNewAnonClassNode extends Expr { /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var int Modifiers */ + public $flags; /** @var Node\Arg[] Arguments */ public $args; /** @var null|Node\Name Name of extended class */ @@ -29,11 +31,12 @@ class PrintableNewAnonClassNode extends Expr public $stmts; public function __construct( - array $attrGroups, array $args, Node\Name $extends = null, array $implements, + array $attrGroups, int $flags, array $args, Node\Name $extends = null, array $implements, array $stmts, array $attributes ) { parent::__construct($attributes); $this->attrGroups = $attrGroups; + $this->flags = $flags; $this->args = $args; $this->extends = $extends; $this->implements = $implements; @@ -46,7 +49,7 @@ class PrintableNewAnonClassNode extends Expr // We don't assert that $class->name is null here, to allow consumers to assign unique names // to anonymous classes for their own purposes. We simplify ignore the name here. return new self( - $class->attrGroups, $newNode->args, $class->extends, $class->implements, + $class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes() ); } @@ -56,6 +59,6 @@ class PrintableNewAnonClassNode extends Expr } public function getSubNodeNames() : array { - return ['attrGroups', 'args', 'extends', 'implements', 'stmts']; + return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts']; } } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php index faf832f9..0c45ffb4 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php @@ -10,15 +10,15 @@ class ClassConstFetch extends Expr { /** @var Name|Expr Class name */ public $class; - /** @var Identifier|Error Constant name */ + /** @var Identifier|Expr|Error Constant name */ public $name; /** * Constructs a class const fetch node. * - * @param Name|Expr $class Class name - * @param string|Identifier|Error $name Constant name - * @param array $attributes Additional attributes + * @param Name|Expr $class Class name + * @param string|Identifier|Expr|Error $name Constant name + * @param array $attributes Additional attributes */ public function __construct($class, $name, array $attributes = []) { $this->attributes = $attributes; @@ -29,7 +29,7 @@ class ClassConstFetch extends Expr public function getSubNodeNames() : array { return ['class', 'name']; } - + public function getType() : string { return 'Expr_ClassConstFetch'; } diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php index 17bd1c0f..f0a564ff 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Name.php @@ -6,7 +6,10 @@ use PhpParser\NodeAbstract; class Name extends NodeAbstract { - /** @var string[] Parts of the name */ + /** + * @var string[] Parts of the name + * @deprecated Use getParts() instead + */ public $parts; private static $specialClassNames = [ @@ -30,6 +33,15 @@ class Name extends NodeAbstract return ['parts']; } + /** + * Get parts of name (split by the namespace separator). + * + * @return string[] Parts of name + */ + public function getParts(): array { + return $this->parts; + } + /** * Gets the first part of the name, i.e. everything before the first namespace separator. * diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php index 1fc7f336..8abaad6d 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php @@ -10,31 +10,36 @@ class ClassConst extends Node\Stmt public $flags; /** @var Node\Const_[] Constant declarations */ public $consts; - /** @var Node\AttributeGroup[] */ + /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */ + public $type; /** * Constructs a class const list node. * - * @param Node\Const_[] $consts Constant declarations - * @param int $flags Modifiers - * @param array $attributes Additional attributes - * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param Node\Const_[] $consts Constant declarations + * @param int $flags Modifiers + * @param array $attributes Additional attributes + * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param null|string|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration */ public function __construct( array $consts, int $flags = 0, array $attributes = [], - array $attrGroups = [] + array $attrGroups = [], + $type = null ) { $this->attributes = $attributes; $this->flags = $flags; $this->consts = $consts; $this->attrGroups = $attrGroups; + $this->type = \is_string($type) ? new Node\Identifier($type) : $type; } public function getSubNodeNames() : array { - return ['attrGroups', 'flags', 'consts']; + return ['attrGroups', 'flags', 'type', 'consts']; } /** diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php index 351db9ed..a4306710 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -2627,7 +2627,7 @@ class Php5 extends \PhpParser\ParserAbstract $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 552 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true); }, 553 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; diff --git a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index c6b9abd0..fc895cb0 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -18,16 +18,16 @@ use PhpParser\Node\Stmt; class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 396; - protected $actionTableSize = 1223; - protected $gotoTableSize = 626; + protected $actionTableSize = 1241; + protected $gotoTableSize = 629; protected $invalidSymbol = 168; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 429; - protected $numNonLeafStates = 726; + protected $YY2TBLSTATE = 434; + protected $numNonLeafStates = 736; protected $symbolToName = array( "EOF", @@ -244,262 +244,266 @@ class Php7 extends \PhpParser\ParserAbstract ); protected $action = array( - 132, 133, 134, 575, 135, 136, 0, 738, 739, 740, - 137, 37, 850, 825, 851, 476,-32766,-32766,-32766,-32767, - -32767,-32767,-32767, 101, 102, 103, 104, 105, 1097, 1098, - 1099, 1096, 1095, 1094, 1100, 732, 731,-32766, 1289,-32766, + 133, 134, 135, 579, 136, 137, 0, 748, 749, 750, + 138, 38, 327,-32766,-32766,-32766,-32766,-32766,-32766,-32767, + -32767,-32767,-32767, 102, 103, 104, 105, 106, 1109, 1110, + 1111, 1108, 1107, 1106, 1112, 742, 741,-32766, 1232,-32766, -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767, - -32767, 1022, 377, 376, 2, 741,-32766,-32766,-32766,-32766, - -32766, 822, 417,-32766,-32766,-32766,-32766,-32766,-32766, 267, - 138, 399, 745, 746, 747, 748, 287,-32766, 423,-32766, - -32766,-32766,-32766,-32766,-32766, 749, 750, 751, 752, 753, - 754, 755, 756, 757, 758, 759, 779, 576, 780, 781, - 782, 783, 771, 772, 340, 341, 774, 775, 760, 761, - 762, 764, 765, 766, 351, 806, 807, 808, 809, 810, - 577, 767, 768, 578, 579, 800, 791, 789, 790, 803, - 786, 787, -327, 423, 580, 581, 785, 582, 583, 584, - 585, 586, 587, 605, -590, 477, -86, 814, 788, 588, - 589, -590, 139,-32766,-32766,-32766, 132, 133, 134, 575, - 135, 136, 1046, 738, 739, 740, 137, 37, 323, 1013, - 823, 824, 1334, 1324,-32766, 1335,-32766,-32766,-32766,-32766, - -32766,-32766,-32766, 1097, 1098, 1099, 1096, 1095, 1094, 1100, - -587, 732, 731,-32766,-32766,-32766, 12, -587, 81,-32766, - -32766,-32766, 945, 946, 322, 927, 34, 947, 1224, 1223, - 1225, 741, -86, 942,-32766, 1075,-32766,-32766,-32766,-32766, - -32766, 239,-32766,-32766,-32766, 267, 138, 399, 745, 746, - 747, 748, 461, 462, 423, 35, 247, 103, 104, 105, - 128, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 779, 576, 780, 781, 782, 783, 771, 772, - 340, 341, 774, 775, 760, 761, 762, 764, 765, 766, - 351, 806, 807, 808, 809, 810, 577, 767, 768, 578, - 579, 800, 791, 789, 790, 803, 786, 787, -327, 144, - 580, 581, 785, 582, 583, 584, 585, 586, 587, 1222, - 82, 83, 84, -590, 788, 588, 589, -590, 148, 763, - 733, 734, 735, 736, 737, 1309, 738, 739, 740, 776, - 777, 36, 1308, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 288, 271, -587, - -193, 375, 376, -587, 976,-32766, 1021, 453, 454, 455, - 109, 417, 945, 946, 741, 712, 819, 947,-32766,-32766, - -32766, -271, 1073, 941, 1224, 1223, 1225, 288, 742, 743, - 744, 745, 746, 747, 748, -192, -365, 812, -365,-32766, - 599,-32766,-32766, 549, 749, 750, 751, 752, 753, 754, - 755, 756, 757, 758, 759, 779, 802, 780, 781, 782, - 783, 771, 772, 773, 801, 774, 775, 760, 761, 762, - 764, 765, 766, 805, 806, 807, 808, 809, 810, 811, - 767, 768, 769, 770, 800, 791, 789, 790, 803, 786, - 787, 251, 820, 778, 784, 785, 792, 793, 795, 794, - 796, 797, 732, 731, 1261, 1022, 1019, 788, 799, 798, - 49, 50, 51, 507, 52, 53, 1009, 1008, 1007, 1010, - 54, 55, -111, 56, 816, 1045, 14, -111, 1022, -111, - 287, 1305, 977, 306, 302, 1022, 238, -111, -111, -111, - -111, -111, -111, -111, -111, 106, 107, 108, 1089, 271, - -32766,-32766,-32766, 280, 284, 126, -193, 929, 57, 58, - 287, 109, 1019, -541, 59, 308, 60, 244, 245, 61, - 62, 63, 64, 65, 66, 67, 68, 1229, 27, 269, - 69, 439, 508, -341, 1022, 929, 1255, 1256, 509, 907, - 823, -192, 150, 907, 1253, 41, 24, 510, 352, 511, - 818, 512, 386, 513, 11, 699, 514, 515, 648, 25, - 814, 43, 44, 440, 372, 371, 907, 45, 516, 702, - 1220, 667, 668, 363, 334, -540, 357, -541, -541, 320, - 1215, 1249, 518, 519, 520, -581, 1074, 335, 724, -581, - 1019,-32766, -541, 336, 521, 522, 703, 1243, 1244, 1245, - 1246, 1240, 1241, 294, -541, 850, -547, 851, 823, 1247, - 1242, 365, 1022, 1224, 1223, 1225, 295, -153, -153, -153, - 369, 70, 897, 318, 319, 322, 897, 384, 149, 402, - 373, 374, -153, 435, -153, 436, -153, 280, -153, -540, - -540, 141, 1220, 378, 379, 639, 640, 322, 370, 897, - 907, 437, 438, 829, -540, -88, 151, 732, 731, 945, - 946, 153, 823,-32766, 517, -51, -540, 154, -546, 883, - 941, -111, -111, -111, 31, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 155, 74, - 27, 157, 32, 322, -85, 123, 124, 909, 129, 697, - 130, 909, 823, 697, -153, 143, 1253, 158,-32766, -544, - 1229, -542, 159, 160, 1222, 161, -79, 1134, 1136, -75, - 285,-32766,-32766,-32766, 909,-32766, 697,-32766, -539,-32766, - -301, -73,-32766, 897, -72, -71, 1220,-32766,-32766,-32766, - -16, 140, 1215,-32766,-32766, 732, 731, 322, -70,-32766, - 414, -69, -4, 907, -68, -67, 521, 522,-32766, 1243, - 1244, 1245, 1246, 1240, 1241, -66, -47, -18, 147, 270, - 281, 1247, 1242, -544, -544, -542, -542, 732, 731, 713, - 716, 906,-32766, 72, 146, 907, 319, 322, 1222, -297, - -542, 823, -539, -539, 276,-32766,-32766,-32766, 277,-32766, - -544,-32766, -542,-32766, 282, 283,-32766, -539, 909, 328, - 697,-32766,-32766,-32766,-32766, 704, 286,-32766,-32766, -539, - 1222, 923, 289,-32766, 414, 1220, 290,-32766,-32766,-32766, - 271,-32766,-32766,-32766, 47,-32766, 897, -111,-32766, 677, - 109, 814, 145,-32766,-32766,-32766,-32766, 823, 131,-32766, - -32766, 1336,-32766, 654, 670,-32766, 414, 1104, 370, 637, - 430, 551, 73, 13,-32766, 293, 555, 295, 897, 945, - 946, 649, 74, 434, 517, 458, 322, 487, 690, 842, - 941, -111, -111, -111, 301, 1022, 561, 655, 671, 1260, - 300,-32766, -539,-32766, 907, 603, 303, 1222, 296, 297, - 39, 1262, 9, 40,-32766,-32766,-32766, 0,-32766, 907, - -32766, 909,-32766, 697, -4,-32766, 0, 1229, 907, 0, - -32766,-32766,-32766,-32766, 307, 125,-32766,-32766, 0, 1222, - 907, 0,-32766, 414, 0, 0,-32766,-32766,-32766, 707, - -32766,-32766,-32766, 962,-32766, 697, -505,-32766, 714, -495, - 7, 482,-32766,-32766,-32766,-32766, -539, -539,-32766,-32766, - 16, 1222, 567, 367,-32766, 414, 925, 295,-32766,-32766, - -32766, -539,-32766,-32766,-32766, 822,-32766, 897, 721,-32766, - 722, -575, 888, -539,-32766,-32766,-32766, 986, 963, 970, - -32766,-32766, 897, -249, -249, -249,-32766, 414, 823, 370, - 960, 897, 971, 886, 958,-32766, 1078, 1081, 718, 1082, - 945, 946, 1079, 897, 1080, 517, 1086, 33, 1250, 834, - 883, 941, -111, -111, -111, 27, 1275, 1293, 1327, -248, - -248, -248, 1220, 642, 884, 370, 317, 823, 366, 698, - 701, 1253, 1331, 705, -111, 706, 945, 946, 708, 709, - 710, 517, 909,-32766, 697, -249, 883, 941, -111, -111, - -111, 711, 715, 700, -509, 1333, 845, 909, 48, 697, - -573, 1220, 844, 853, 295, 935, 909, 1215, 697, 74, - 978, 852, 1332, 322, 934, 932, 933, 936, 909, 1206, - 697, -248, 522, 916, 1243, 1244, 1245, 1246, 1240, 1241, - 926, 914, 968, 969, 1330, 1287, 1247, 1242, 1276, 1294, - -32766, 1300, 1303, 1191, -547, -546, 1222, -545, 72, -489, - 1, 319, 322,-32766,-32766,-32766, 28,-32766, 29,-32766, - 38,-32766, 298, 299,-32766, 42, 46, 71, 75,-32766, - -32766,-32766, 76, 77, 78,-32766,-32766, 368, 79, 80, - 142,-32766, 414, 152, 156, 243, 324, 352, 353, 127, - -32766, -274, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 364, 431, 0, -272, -271, 18, 19, 20, 21, - 23, 401, 478, 479, 486, 489, 490, 491, 492, 496, - 497, 498, 505, 684, 1233, 1174, 1251, 1048, 1047, 1028, - 0, 1210, 1024, -276, -103, 17, 22, 26, 292, 400, - 596, 600, 628, 689, 1178, 1228, 1175, 1306, 0, 0, - 1254, 0, 322 + -32767, 2, 107, 108, 109, 751, 274, 381, 380,-32766, + -32766,-32766,-32766, 104, 105, 106, 1024, 422, 110, 265, + 139, 403, 755, 756, 757, 758, 466, 467, 428, 938, + 291,-32766, 287,-32766,-32766, 759, 760, 761, 762, 763, + 764, 765, 766, 767, 768, 769, 789, 580, 790, 791, + 792, 793, 781, 782, 344, 345, 784, 785, 770, 771, + 772, 774, 775, 776, 355, 816, 817, 818, 819, 820, + 581, 777, 778, 582, 583, 810, 801, 799, 800, 813, + 796, 797, 687, -545, 584, 585, 795, 586, 587, 588, + 589, 590, 591, -328, -593, -367, 1234, -367, 798, 592, + 593, -593, 140,-32766,-32766,-32766, 133, 134, 135, 579, + 136, 137, 1057, 748, 749, 750, 138, 38, 688, 1020, + 1019, 1018, 1021, 390,-32766, 7,-32766,-32766,-32766,-32766, + -32766,-32766,-32766,-32766,-32766,-32766, 379, 380, 1033, 689, + 690, 742, 741,-32766,-32766,-32766, 422, -545, -545, -590, + -32766,-32766,-32766, 1032,-32766, 127, -590, 1236, 1235, 1237, + 1318, 751, -545, 290,-32766, 283,-32766,-32766,-32766,-32766, + -32766, 1236, 1235, 1237, -545, 265, 139, 403, 755, 756, + 757, 758, 16, 481, 428, 458, 459, 460, 298, 722, + 35, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 789, 580, 790, 791, 792, 793, 781, 782, + 344, 345, 784, 785, 770, 771, 772, 774, 775, 776, + 355, 816, 817, 818, 819, 820, 581, 777, 778, 582, + 583, 810, 801, 799, 800, 813, 796, 797, 129, 824, + 584, 585, 795, 586, 587, 588, 589, 590, 591, -328, + 83, 84, 85, -593, 798, 592, 593, -593, 149, 773, + 743, 744, 745, 746, 747, 824, 748, 749, 750, 786, + 787, 37, 145, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 291, 274, 835, + 254, 1109, 1110, 1111, 1108, 1107, 1106, 1112, -590, 860, + 110, 861, -590, 482, 751,-32766,-32766,-32766,-32766,-32766, + 142, 603, 1085, 742, 741, 1262, 326, 987, 752, 753, + 754, 755, 756, 757, 758, 309,-32766, 822,-32766,-32766, + -32766,-32766, 242, 553, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 789, 812, 790, 791, 792, + 793, 781, 782, 783, 811, 784, 785, 770, 771, 772, + 774, 775, 776, 815, 816, 817, 818, 819, 820, 821, + 777, 778, 779, 780, 810, 801, 799, 800, 813, 796, + 797, 311, 940, 788, 794, 795, 802, 803, 805, 804, + 806, 807, 323, 609, 1274, 1033, 833, 798, 809, 808, + 50, 51, 52, 512, 53, 54, 860, 241, 861, 918, + 55, 56, -111, 57,-32766,-32766,-32766, -111, 826, -111, + 290, 1302, 1347, 356, 305, 1348, 339, -111, -111, -111, + -111, -111, -111, -111, -111,-32766, -194,-32766,-32766,-32766, + -193, 956, 957, 829, -86, 988, 958, 834, 58, 59, + 340, 428, 952, -544, 60, 832, 61, 247, 248, 62, + 63, 64, 65, 66, 67, 68, 69, 1241, 28, 267, + 70, 444, 513, -342,-32766, 141, 1268, 1269, 514, 918, + 833, 326, -272, 918, 1266, 42, 25, 515, 940, 516, + 14, 517, 908, 518, 828, 369, 519, 520, 373, 709, + 1033, 44, 45, 445, 376, 375, 388, 46, 521, 712, + -86, 440, 1101, 367, 338, -543, 441, -544, -544, 830, + 1227, 442, 523, 524, 525, 290, 1236, 1235, 1237, 361, + 1030, 443, -544, 1087, 526, 527, 839, 1255, 1256, 1257, + 1258, 1252, 1253, 297, -544, 151, -550, -584, 833, 1259, + 1254, -584, 1033, 1236, 1235, 1237, 298, -154, -154, -154, + 152, 71, 908, 321, 322, 326, 908, 920, 1030, 707, + 833, 154, -154, 1337, -154, 155, -154, 283, -154, -543, + -543, 82, 1232, 1086, 1322, 734, 156, 326, 374, 158, + 1033, 1321, -194, -79, -543, -88, -193, 742, 741, 956, + 957, 653, 26,-32766, 522, -51, -543, 33, -549, 894, + 952, -111, -111, -111, 32, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, -59, 75, + 28, 672, 673, 326, -58, 36, 250, 920, 124, 707, + 125, 920, 833, 707, -154, 130, 1266, 131,-32766, -547, + 144, -542, 150, 406, 1234, 377, 378, 1146, 1148, 382, + 383,-32766,-32766,-32766, -85,-32766, 1056,-32766, -542,-32766, + 644, 645,-32766, 159, 160, 161, 1232,-32766,-32766,-32766, + 162, -79, 1227,-32766,-32766, 742, 741, 163, -302,-32766, + 419, -75, -4, 918, -73, 287, 526, 527,-32766, 1255, + 1256, 1257, 1258, 1252, 1253, -72, -71, -70, -69, -68, + -67, 1259, 1254, -547, -547, -542, -542, 742, 741, -66, + -47, -18,-32766, 73, 148, 918, 322, 326, 1234, 273, + -542, 284, -542, -542, 723,-32766,-32766,-32766, 726,-32766, + -547,-32766, -542,-32766, 917, 147,-32766, -542, 288, 289, + -298,-32766,-32766,-32766,-32766, 713, 279,-32766,-32766, -542, + 1234, 280, 285,-32766, 419, 48, 286,-32766,-32766,-32766, + 332,-32766,-32766,-32766, 292,-32766, 908, 293,-32766, 934, + 274, 1030, 918,-32766,-32766,-32766, 110, 682, 132,-32766, + -32766, 833, 146,-32766, 559,-32766, 419, 659, 374, 824, + 435, 1349, 74, 1033,-32766, 296, 654, 1116, 908, 956, + 957, 306, 714, 698, 522, 555, 303, 13, 310, 852, + 952, -111, -111, -111, 700, 463, 492, 953, 283, 299, + 300,-32766, 49, 675, 918, 304, 660, 1234, 676, 936, + 1273,-32766, 10, 1263,-32766,-32766,-32766, 642,-32766, 918, + -32766, 920,-32766, 707, -4,-32766, 126, 34, 918, 565, + -32766,-32766,-32766,-32766, 0, 908,-32766,-32766, 0, 1234, + 918, 0,-32766, 419, 0, 0,-32766,-32766,-32766, 717, + -32766,-32766,-32766, 920,-32766, 707, 1033,-32766, 724, 1275, + 0, 487,-32766,-32766,-32766,-32766, 301, 302,-32766,-32766, + -507, 1234, 571, -497,-32766, 419, 607, 8,-32766,-32766, + -32766, 372,-32766,-32766,-32766, 17,-32766, 908, 371,-32766, + 832, 298, 320, 128,-32766,-32766,-32766, 40, 370, 41, + -32766,-32766, 908, -250, -250, -250,-32766, 419, 731, 374, + 973, 908, 707, 732, 899,-32766, 997, 974, 728, 981, + 956, 957, 971, 908, 982, 522, 897, 969, 1090, 1093, + 894, 952, -111, -111, -111, 28, 1094, 1091, 1092, -249, + -249, -249, 1241, 1098, 708, 374, 844, 833, 1288, 1306, + 1340, 1266, 647, 1267, 711, 715, 956, 957, 716, 1241, + 718, 522, 920, 719, 707, -250, 894, 952, -111, -111, + -111, 720, -16, 721, 725, 710, -511, 920, 895, 707, + -578, 1232, 1344, 1346, 855, 854, 920, 1227, 707, -577, + 863, 946, 989, 862, 1345, 945, 943, 944, 920, 947, + 707, -249, 527, 1218, 1255, 1256, 1257, 1258, 1252, 1253, + 927, 937, 925, 979, 980, 631, 1259, 1254, 1343, 1300, + -32766, 1289, 1307, 833, 1316, -275, 1234, -576, 73, -550, + -549, 322, 326,-32766,-32766,-32766, -548,-32766, -491,-32766, + 833,-32766, 1, 29,-32766, 30, 39, 43, 47,-32766, + -32766,-32766, 72, 76, 77,-32766,-32766, 1232, -111, -111, + 78,-32766, 419, -111, 79, 80, 81, 143, 153, -111, + -32766, 157, 246, 328, 1232, -111, -111, 356,-32766, 357, + -111, 358, 359, 360, 361, 362, -111, 363, 364, 365, + 366, 368, 436, 0, -273,-32766, -272, 19, 20, 298, + 21, 22, 24, 405, 75, 1203, 483, 484, 326, 491, + 0, 494, 495, 496, 497, 501, 298, 502, 503, 510, + 693, 75, 0, 1245, 1186, 326, 1264, 1059, 1058, 1039, + 1222, 1035, -277, -103, 18, 23, 27, 295, 404, 600, + 604, 633, 699, 1190, 1240, 1187, 1319, 0, 0, 0, + 326 ); protected $actionCheck = array( 2, 3, 4, 5, 6, 7, 0, 9, 10, 11, - 12, 13, 106, 1, 108, 31, 9, 10, 11, 44, + 12, 13, 70, 9, 10, 11, 9, 10, 11, 44, 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, - 118, 119, 120, 121, 122, 37, 38, 30, 1, 32, + 118, 119, 120, 121, 122, 37, 38, 30, 116, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 138, 106, 107, 8, 57, 9, 10, 11, 9, - 10, 155, 116, 9, 10, 11, 9, 10, 11, 71, - 72, 73, 74, 75, 76, 77, 163, 30, 80, 32, - 33, 34, 35, 36, 30, 87, 88, 89, 90, 91, + 43, 8, 53, 54, 55, 57, 57, 106, 107, 137, + 9, 10, 11, 50, 51, 52, 1, 116, 69, 71, + 72, 73, 74, 75, 76, 77, 134, 135, 80, 1, + 30, 30, 30, 32, 33, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 8, 80, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 51, 1, 161, 31, 80, 150, 151, + 132, 133, 80, 70, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 8, 1, 106, 80, 108, 150, 151, 152, 8, 154, 9, 10, 11, 2, 3, 4, 5, - 6, 7, 164, 9, 10, 11, 12, 13, 70, 1, - 82, 159, 80, 85, 30, 83, 32, 33, 34, 35, - 36, 37, 38, 116, 117, 118, 119, 120, 121, 122, - 1, 37, 38, 9, 10, 11, 8, 8, 161, 9, - 10, 11, 117, 118, 167, 1, 8, 122, 155, 156, - 157, 57, 97, 128, 30, 162, 32, 33, 34, 35, - 30, 14, 32, 33, 34, 71, 72, 73, 74, 75, - 76, 77, 134, 135, 80, 147, 148, 50, 51, 52, + 6, 7, 164, 9, 10, 11, 12, 13, 116, 119, + 120, 121, 122, 106, 30, 108, 32, 33, 34, 35, + 36, 37, 38, 9, 10, 11, 106, 107, 138, 137, + 138, 37, 38, 9, 10, 11, 116, 134, 135, 1, + 9, 10, 11, 137, 30, 14, 8, 155, 156, 157, + 1, 57, 149, 163, 30, 163, 32, 33, 34, 35, + 36, 155, 156, 157, 161, 71, 72, 73, 74, 75, + 76, 77, 8, 31, 80, 129, 130, 131, 158, 161, 8, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 164, 8, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 80, + 126, 127, 128, 129, 130, 131, 132, 133, 8, 80, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 164, 9, 10, 11, 160, 150, 151, 152, 164, 154, 2, - 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, + 3, 4, 5, 6, 7, 80, 9, 10, 11, 12, 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 30, 57, 160, - 8, 106, 107, 164, 31, 9, 137, 129, 130, 131, - 69, 116, 117, 118, 57, 161, 80, 122, 9, 10, - 11, 164, 1, 128, 155, 156, 157, 30, 71, 72, - 73, 74, 75, 76, 77, 8, 106, 80, 108, 30, - 1, 32, 33, 85, 87, 88, 89, 90, 91, 92, + 49, 50, 51, 52, 53, 54, 55, 30, 57, 1, + 8, 116, 117, 118, 119, 120, 121, 122, 160, 106, + 69, 108, 164, 161, 57, 9, 10, 11, 9, 10, + 161, 1, 1, 37, 38, 1, 167, 31, 71, 72, + 73, 74, 75, 76, 77, 8, 30, 80, 32, 33, + 34, 35, 14, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 8, 156, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 37, 38, 146, 138, 116, 150, 151, 152, - 2, 3, 4, 5, 6, 7, 119, 120, 121, 122, - 12, 13, 101, 15, 80, 1, 101, 106, 138, 108, - 163, 1, 159, 8, 113, 138, 97, 116, 117, 118, - 119, 120, 121, 122, 123, 53, 54, 55, 123, 57, - 9, 10, 11, 163, 30, 14, 164, 122, 50, 51, - 163, 69, 116, 70, 56, 8, 58, 59, 60, 61, + 133, 8, 122, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 8, 51, 146, 138, 82, 150, 151, 152, + 2, 3, 4, 5, 6, 7, 106, 97, 108, 1, + 12, 13, 101, 15, 9, 10, 11, 106, 80, 108, + 163, 1, 80, 163, 113, 83, 8, 116, 117, 118, + 119, 120, 121, 122, 123, 30, 8, 32, 33, 34, + 8, 117, 118, 80, 31, 159, 122, 159, 50, 51, + 8, 80, 128, 70, 56, 155, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, - 72, 73, 74, 162, 138, 122, 78, 79, 80, 1, - 82, 164, 14, 1, 86, 87, 88, 89, 163, 91, - 156, 93, 106, 95, 108, 161, 98, 99, 75, 76, - 80, 103, 104, 105, 106, 107, 1, 109, 110, 31, - 116, 75, 76, 115, 116, 70, 163, 134, 135, 8, - 122, 1, 124, 125, 126, 160, 159, 8, 161, 164, - 116, 137, 149, 8, 136, 137, 31, 139, 140, 141, - 142, 143, 144, 145, 161, 106, 163, 108, 82, 151, - 152, 8, 138, 155, 156, 157, 158, 75, 76, 77, - 8, 163, 84, 165, 166, 167, 84, 8, 101, 102, - 106, 107, 90, 8, 92, 8, 94, 163, 96, 134, - 135, 161, 116, 106, 107, 111, 112, 167, 106, 84, - 1, 8, 8, 8, 149, 31, 14, 37, 38, 117, - 118, 14, 82, 137, 122, 31, 161, 14, 163, 127, + 72, 73, 74, 162, 9, 161, 78, 79, 80, 1, + 82, 167, 164, 1, 86, 87, 88, 89, 122, 91, + 101, 93, 84, 95, 156, 8, 98, 99, 8, 161, + 138, 103, 104, 105, 106, 107, 8, 109, 110, 31, + 97, 8, 123, 115, 116, 70, 8, 134, 135, 156, + 122, 8, 124, 125, 126, 163, 155, 156, 157, 163, + 116, 8, 149, 162, 136, 137, 8, 139, 140, 141, + 142, 143, 144, 145, 161, 14, 163, 160, 82, 151, + 152, 164, 138, 155, 156, 157, 158, 75, 76, 77, + 14, 163, 84, 165, 166, 167, 84, 159, 116, 161, + 82, 14, 90, 85, 92, 14, 94, 163, 96, 134, + 135, 161, 116, 159, 1, 161, 14, 167, 106, 14, + 138, 8, 164, 16, 149, 31, 164, 37, 38, 117, + 118, 75, 76, 137, 122, 31, 161, 14, 163, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 14, 163, - 70, 14, 14, 167, 31, 16, 16, 159, 16, 161, + 22, 23, 24, 25, 26, 27, 28, 29, 16, 163, + 70, 75, 76, 167, 16, 147, 148, 159, 16, 161, 16, 159, 82, 161, 162, 16, 86, 16, 74, 70, - 1, 70, 16, 16, 80, 16, 31, 59, 60, 31, - 37, 87, 88, 89, 159, 91, 161, 93, 70, 95, - 35, 31, 98, 84, 31, 31, 116, 103, 104, 105, - 31, 161, 122, 109, 110, 37, 38, 167, 31, 115, - 116, 31, 0, 1, 31, 31, 136, 137, 124, 139, + 16, 70, 101, 102, 80, 106, 107, 59, 60, 106, + 107, 87, 88, 89, 31, 91, 1, 93, 70, 95, + 111, 112, 98, 16, 16, 16, 116, 103, 104, 105, + 16, 31, 122, 109, 110, 37, 38, 16, 35, 115, + 116, 31, 0, 1, 31, 30, 136, 137, 124, 139, 140, 141, 142, 143, 144, 31, 31, 31, 31, 31, 31, 151, 152, 134, 135, 134, 135, 37, 38, 31, - 31, 31, 74, 163, 31, 1, 166, 167, 80, 35, - 149, 82, 134, 135, 35, 87, 88, 89, 35, 91, - 161, 93, 161, 95, 35, 35, 98, 149, 159, 35, - 161, 103, 104, 105, 74, 31, 37, 109, 110, 161, - 80, 38, 37, 115, 116, 116, 37, 87, 88, 89, - 57, 91, 124, 93, 70, 95, 84, 128, 98, 77, - 69, 80, 70, 103, 104, 105, 137, 82, 31, 109, - 110, 83, 85, 96, 94, 115, 116, 82, 106, 113, - 108, 85, 154, 97, 124, 113, 89, 158, 84, 117, - 118, 90, 163, 128, 122, 97, 167, 97, 92, 127, - 128, 129, 130, 131, 133, 138, 153, 100, 100, 146, - 132, 74, 70, 137, 1, 153, 114, 80, 134, 135, - 159, 146, 150, 159, 87, 88, 89, -1, 91, 1, - 93, 159, 95, 161, 162, 98, -1, 1, 1, -1, - 103, 104, 105, 74, 132, 161, 109, 110, -1, 80, + 31, 31, 74, 163, 31, 1, 166, 167, 80, 31, + 149, 31, 134, 135, 31, 87, 88, 89, 31, 91, + 161, 93, 161, 95, 31, 31, 98, 149, 37, 37, + 35, 103, 104, 105, 74, 31, 35, 109, 110, 161, + 80, 35, 35, 115, 116, 70, 35, 87, 88, 89, + 35, 91, 124, 93, 37, 95, 84, 37, 98, 38, + 57, 116, 1, 103, 104, 105, 69, 77, 31, 109, + 110, 82, 70, 85, 89, 115, 116, 96, 106, 80, + 108, 83, 154, 138, 124, 113, 90, 82, 84, 117, + 118, 114, 31, 80, 122, 85, 132, 97, 132, 127, + 128, 129, 130, 131, 92, 97, 97, 128, 163, 134, + 135, 74, 70, 94, 1, 133, 100, 80, 100, 154, + 146, 137, 150, 160, 87, 88, 89, 113, 91, 1, + 93, 159, 95, 161, 162, 98, 161, 161, 1, 153, + 103, 104, 105, 74, -1, 84, 109, 110, -1, 80, 1, -1, 115, 116, -1, -1, 87, 88, 89, 31, - 91, 124, 93, 159, 95, 161, 149, 98, 31, 149, - 149, 102, 103, 104, 105, 74, 134, 135, 109, 110, - 149, 80, 81, 149, 115, 116, 154, 158, 87, 88, - 89, 149, 91, 124, 93, 155, 95, 84, 159, 98, - 159, 163, 159, 161, 103, 104, 105, 159, 159, 159, - 109, 110, 84, 100, 101, 102, 115, 116, 82, 106, - 159, 84, 159, 159, 159, 124, 159, 159, 162, 159, - 117, 118, 159, 84, 159, 122, 159, 161, 160, 160, - 127, 128, 129, 130, 131, 70, 160, 160, 160, 100, - 101, 102, 116, 160, 162, 106, 161, 82, 161, 161, - 161, 86, 162, 161, 128, 161, 117, 118, 161, 161, - 161, 122, 159, 137, 161, 162, 127, 128, 129, 130, - 131, 161, 161, 161, 165, 162, 162, 159, 70, 161, - 163, 116, 162, 162, 158, 162, 159, 122, 161, 163, - 162, 162, 162, 167, 162, 162, 162, 162, 159, 162, + 91, 124, 93, 159, 95, 161, 138, 98, 31, 146, + -1, 102, 103, 104, 105, 74, 134, 135, 109, 110, + 149, 80, 81, 149, 115, 116, 153, 149, 87, 88, + 89, 149, 91, 124, 93, 149, 95, 84, 149, 98, + 155, 158, 161, 161, 103, 104, 105, 159, 161, 159, + 109, 110, 84, 100, 101, 102, 115, 116, 159, 106, + 159, 84, 161, 159, 159, 124, 159, 159, 162, 159, + 117, 118, 159, 84, 159, 122, 159, 159, 159, 159, + 127, 128, 129, 130, 131, 70, 159, 159, 159, 100, + 101, 102, 1, 159, 161, 106, 160, 82, 160, 160, + 160, 86, 160, 166, 161, 161, 117, 118, 161, 1, + 161, 122, 159, 161, 161, 162, 127, 128, 129, 130, + 131, 161, 31, 161, 161, 161, 165, 159, 162, 161, + 163, 116, 162, 162, 162, 162, 159, 122, 161, 163, + 162, 162, 162, 162, 162, 162, 162, 162, 159, 162, 161, 162, 137, 162, 139, 140, 141, 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, - 74, 162, 162, 165, 163, 163, 80, 163, 163, 163, + 74, 162, 162, 82, 162, 164, 80, 163, 163, 163, 163, 166, 167, 87, 88, 89, 163, 91, 163, 93, - 163, 95, 134, 135, 98, 163, 163, 163, 163, 103, - 104, 105, 163, 163, 163, 109, 110, 149, 163, 163, - 163, 115, 116, 163, 163, 163, 163, 163, 163, 161, - 124, 164, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, -1, 164, 164, 164, 164, 164, 164, + 82, 95, 163, 163, 98, 163, 163, 163, 163, 103, + 104, 105, 163, 163, 163, 109, 110, 116, 117, 118, + 163, 115, 116, 122, 163, 163, 163, 163, 163, 128, + 124, 163, 163, 163, 116, 117, 118, 163, 137, 163, + 122, 163, 163, 163, 163, 163, 128, 163, 163, 163, + 163, 163, 163, -1, 164, 137, 164, 164, 164, 158, + 164, 164, 164, 164, 163, 165, 164, 164, 167, 164, + -1, 164, 164, 164, 164, 164, 158, 164, 164, 164, + 164, 163, -1, 164, 164, 167, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, -1, -1, - 166, -1, 167 + 164, 164, 164, 164, 164, 164, 164, -1, -1, -1, + 167 ); protected $actionBase = array( - 0, -2, 154, 542, 752, 893, 929, 580, 53, 394, - 855, 307, 307, 67, 307, 307, 307, 565, 908, 908, - 917, 908, 538, 784, 649, 649, 649, 708, 708, 708, - 708, 740, 740, 849, 849, 881, 817, 634, 1036, 1036, + 0, -2, 154, 542, 752, 893, 929, 52, 374, 431, + 398, 869, 793, 235, 307, 307, 793, 307, 784, 908, + 908, 917, 908, 538, 841, 468, 468, 468, 708, 708, + 708, 708, 740, 740, 849, 849, 881, 817, 634, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, @@ -512,65 +516,67 @@ class Php7 extends \PhpParser\ParserAbstract 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, - 1036, 1036, 12, 323, 389, 678, 1044, 1050, 1046, 1051, - 1042, 1041, 1045, 1047, 1052, 942, 943, 753, 946, 947, - 949, 950, 1048, 873, 1043, 1049, 291, 291, 291, 291, + 1036, 1036, 1036, 1036, 348, 346, 370, 653, 1063, 1069, + 1065, 1070, 1061, 1060, 1064, 1066, 1071, 946, 947, 774, + 949, 950, 943, 952, 1067, 882, 1062, 1068, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 346, 491, 50, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 54, 54, 54, 620, 620, - 359, 190, 184, 955, 955, 955, 955, 955, 955, 955, - 955, 955, 955, 658, 47, 144, 144, 7, 7, 7, - 7, 7, 371, -25, -25, -25, -25, 709, 347, 916, - 474, 526, 375, 280, 317, 245, 340, 340, 187, 187, - 396, 396, -87, -87, 396, 396, 396, 747, 747, 747, - 747, 443, 505, -94, 308, 454, 480, 480, 480, 480, - 454, 454, 454, 454, 755, 1054, 454, 454, 454, 641, - 822, 822, 998, 442, 442, 442, 822, 499, 776, 88, - 499, 88, 37, 92, 756, 85, -54, 425, 756, 639, - 764, 189, 143, 820, 524, 820, 1040, 385, 767, 413, - 735, 688, 857, 902, 1053, 787, 940, 788, 941, 228, - 98, 685, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1055, 415, 1040, 286, 1055, 1055, 1055, - 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, - 534, 286, 483, 496, 286, 774, 415, 12, 800, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 736, - -16, 12, 323, 204, 204, 427, 168, 204, 204, 204, - 204, 12, 12, 12, 524, 773, 733, 537, 742, 377, - 773, 773, 773, 115, 124, 207, 342, 695, 754, 446, - 761, 761, 775, 957, 957, 761, 765, 761, 775, 973, - 761, 761, 957, 957, 809, 232, 625, 579, 612, 627, - 957, 475, 761, 761, 761, 761, 792, 643, 761, 433, - 281, 761, 761, 792, 758, 739, 46, 751, 957, 957, - 957, 792, 603, 751, 751, 751, 819, 821, 746, 738, - 571, 507, 645, 198, 783, 738, 738, 761, 619, 746, - 738, 746, 738, 812, 738, 738, 738, 746, 738, 765, - 585, 738, 691, 644, 188, 738, 6, 974, 975, 624, - 979, 967, 980, 1009, 981, 985, 878, 956, 992, 972, - 986, 965, 963, 750, 679, 680, 801, 797, 954, 771, - 771, 771, 951, 771, 771, 771, 771, 771, 771, 771, - 771, 679, 858, 814, 745, 777, 995, 682, 684, 743, - 872, 899, 948, 994, 1030, 987, 741, 689, 1016, 999, - 846, 875, 1000, 1001, 1017, 1031, 1032, 880, 772, 903, - 904, 859, 1003, 879, 771, 974, 985, 663, 972, 986, - 965, 963, 734, 724, 720, 723, 717, 704, 700, 703, - 737, 1033, 907, 818, 866, 1002, 952, 679, 867, 1012, - 856, 1018, 1019, 877, 778, 768, 868, 910, 1004, 1005, - 1006, 882, 1034, 884, 744, 1013, 997, 1020, 780, 911, - 1021, 1022, 1023, 1024, 887, 913, 888, 889, 823, 781, - 1010, 757, 918, 528, 769, 770, 789, 1008, 642, 993, - 900, 919, 920, 1025, 1026, 1027, 922, 923, 990, 828, - 1014, 760, 1015, 1011, 829, 830, 647, 785, 1035, 759, - 763, 779, 653, 674, 924, 925, 927, 991, 748, 762, - 841, 843, 1037, 683, 1038, 931, 677, 844, 696, 938, - 1029, 697, 699, 786, 901, 811, 782, 766, 1007, 749, - 845, 939, 847, 848, 850, 1028, 853, 0, 0, 0, + 291, 291, 291, 291, 291, 525, 191, 359, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 174, 174, + 174, 620, 620, 51, 465, 356, 955, 955, 955, 955, + 955, 955, 955, 955, 955, 955, 658, 184, 144, 144, + 7, 7, 7, 7, 7, 1031, 371, 1048, -25, -25, + -25, -25, 50, 725, 526, 449, 39, 317, 80, 474, + 474, 13, 13, 512, 512, 422, 422, 512, 512, 512, + 808, 808, 808, 808, 443, 505, 360, 308, -78, 209, + 209, 209, 209, -78, -78, -78, -78, 803, 877, -78, + -78, -78, 63, 641, 641, 822, -1, -1, -1, 641, + 253, 790, 548, 253, 384, 548, 480, 402, 764, 759, + -49, 447, 764, 639, 755, 198, 143, 825, 609, 825, + 1059, 320, 768, 426, 749, 720, 874, 904, 1072, 796, + 941, 798, 942, 106, -58, 710, 1058, 1058, 1058, 1058, + 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1073, 336, 1059, + 423, 1073, 1073, 1073, 336, 336, 336, 336, 336, 336, + 336, 336, 336, 336, 619, 423, 586, 616, 423, 795, + 336, 348, 814, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 750, 202, 348, 346, 78, 78, 484, + 65, 78, 78, 78, 78, 348, 348, 348, 348, 609, + 783, 766, 613, 813, 492, 783, 783, 783, 473, 135, + 378, 488, 713, 775, 67, 779, 779, 785, 969, 969, + 779, 769, 779, 785, 975, 779, 779, 969, 969, 823, + 280, 563, 478, 550, 568, 969, 377, 779, 779, 779, + 779, 746, 573, 779, 342, 314, 779, 779, 746, 744, + 760, 43, 762, 969, 969, 969, 746, 547, 762, 762, + 762, 839, 844, 794, 758, 444, 433, 588, 232, 801, + 758, 758, 779, 558, 794, 758, 794, 758, 745, 758, + 758, 758, 794, 758, 769, 502, 758, 717, 583, 224, + 758, 6, 979, 980, 624, 981, 973, 987, 1019, 991, + 992, 873, 965, 999, 974, 993, 972, 970, 773, 682, + 684, 818, 811, 963, 777, 777, 777, 956, 777, 777, + 777, 777, 777, 777, 777, 777, 682, 743, 829, 765, + 1006, 689, 691, 754, 906, 901, 1030, 1004, 1049, 994, + 828, 694, 1028, 1008, 846, 821, 1009, 1010, 1029, 1050, + 1052, 910, 782, 911, 912, 876, 1012, 883, 777, 979, + 992, 693, 974, 993, 972, 970, 748, 739, 737, 738, + 736, 735, 723, 734, 753, 1053, 954, 907, 878, 1011, + 957, 682, 879, 1023, 756, 1032, 1033, 827, 788, 778, + 880, 913, 1014, 1015, 1016, 884, 1054, 887, 830, 1024, + 951, 1035, 789, 918, 1037, 1038, 1039, 1040, 889, 919, + 892, 916, 900, 845, 776, 1020, 761, 920, 591, 787, + 791, 800, 1018, 606, 1000, 902, 921, 922, 1041, 1043, + 1044, 923, 924, 995, 847, 1026, 799, 1027, 1022, 848, + 850, 617, 797, 1055, 781, 786, 772, 621, 632, 925, + 927, 931, 998, 763, 770, 853, 855, 1056, 771, 1057, + 938, 635, 857, 718, 939, 1046, 719, 724, 637, 678, + 672, 731, 792, 903, 826, 757, 780, 1017, 724, 767, + 858, 940, 859, 860, 867, 1045, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 458, 458, - 458, 458, 458, 307, 307, 307, 307, 0, 0, 307, - 0, 0, 0, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 307, 307, 307, 307, 307, 307, 307, + 0, 0, 307, 0, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, @@ -584,182 +590,182 @@ class Php7 extends \PhpParser\ParserAbstract 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 458, 458, 458, 458, 458, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, - 291, 291, 291, 291, 219, 219, 291, 291, 291, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 0, - 291, 291, 291, 291, 291, 291, 291, 291, 809, 442, - 442, 442, 442, 219, 219, 219, 219, 219, -88, -88, - 219, 809, 219, 219, 442, 442, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 0, 0, 286, - 88, 219, 765, 765, 765, 765, 219, 219, 219, 219, - 88, 88, 219, 219, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 286, 88, 0, 286, 0, 765, 765, - 219, 0, 809, 314, 219, 0, 0, 0, 0, 286, - 765, 286, 415, 761, 88, 761, 415, 415, 204, 12, - 314, 527, 527, 527, 527, 0, 0, 524, 809, 809, - 809, 809, 809, 809, 809, 809, 809, 809, 809, 765, - 0, 809, 0, 765, 765, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 765, 0, 0, 957, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, - 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, - 0, 771, 778, 0, 778, 0, 771, 771, 771, 0, - 0, 0, 0, 785, 683 + 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 291, 291, 291, 66, 66, 291, + 291, 291, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 0, 291, 291, 291, 291, 291, 291, 291, + 291, 66, 823, 66, -1, -1, -1, -1, 66, 66, + 66, -88, -88, 66, 384, 66, 66, -1, -1, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 0, 0, 423, 548, 66, 769, 769, 769, 769, 66, + 66, 66, 66, 548, 548, 66, 66, 66, 0, 0, + 0, 0, 0, 0, 0, 0, 423, 548, 0, 423, + 0, 0, 769, 769, 66, 384, 823, 643, 66, 0, + 0, 0, 0, 423, 769, 423, 336, 779, 548, 779, + 336, 336, 78, 348, 643, 611, 611, 611, 611, 0, + 0, 609, 823, 823, 823, 823, 823, 823, 823, 823, + 823, 823, 823, 769, 0, 823, 0, 769, 769, 769, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 769, 0, 0, 969, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, + 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 777, 788, 0, 788, + 0, 777, 777, 777, 0, 0, 0, 0, 797, 771 ); protected $actionDefault = array( 3,32767, 103,32767,32767,32767,32767,32767,32767,32767, - 32767,32767, 101,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 593, 593, 593, - 593,32767,32767, 253, 103,32767,32767, 467, 385, 385, - 385,32767,32767, 537, 537, 537, 537, 537, 537,32767, - 32767,32767,32767,32767,32767, 467,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767, 101,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 596, 596, + 596, 596,32767,32767, 254, 103,32767,32767, 469, 387, + 387, 387,32767,32767, 540, 540, 540, 540, 540, 540, + 32767,32767,32767,32767,32767,32767, 469,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 101,32767, - 32767,32767, 37, 7, 8, 10, 11, 50, 17, 323, - 32767,32767,32767,32767, 103,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 101, + 32767,32767,32767, 37, 7, 8, 10, 11, 50, 17, + 324,32767,32767,32767,32767, 103,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767, 586,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 589,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 471, 450, 451, 453, - 454, 384, 538, 592, 326, 589, 383, 146, 338, 328, - 241, 329, 257, 472, 258, 473, 476, 477, 214, 286, - 380, 150, 414, 468, 416, 466, 470, 415, 390, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 388, 389, 469, 447, 446, 445,32767,32767, - 412, 413, 417,32767,32767,32767,32767,32767,32767,32767, - 32767, 103,32767, 387, 420, 418, 419, 436, 437, 434, - 435, 438,32767, 439, 440, 441, 442,32767, 315,32767, - 32767,32767, 364, 362, 315, 112,32767,32767, 427, 428, + 32767,32767,32767,32767,32767,32767,32767,32767, 473, 452, + 453, 455, 456, 386, 541, 595, 327, 592, 385, 146, + 339, 329, 242, 330, 258, 474, 259, 475, 478, 479, + 215, 287, 382, 150, 151, 416, 470, 418, 468, 472, + 417, 392, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 390, 391, 471, 449, 448, + 447,32767,32767, 414, 415, 419,32767,32767,32767,32767, + 32767,32767,32767,32767, 103,32767, 389, 422, 420, 421, + 438, 439, 436, 437, 440,32767,32767,32767, 441, 442, + 443, 444, 316,32767,32767, 366, 364, 316, 112,32767, + 32767, 429, 430,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767, 534, 446,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 103, + 32767, 101, 536, 411, 413, 503, 424, 425, 423, 393, + 32767, 510,32767, 103,32767, 512,32767,32767,32767,32767, + 32767,32767,32767, 535,32767, 542, 542,32767, 496, 101, + 195,32767,32767,32767, 195, 195,32767,32767,32767,32767, + 32767,32767,32767,32767, 603, 496, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111,32767, 195, 111, + 32767,32767,32767, 101, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 190,32767, 268, 270, 103, 557, + 195,32767, 515,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767, 508,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767,32767, 496, + 434, 139,32767, 139, 542, 426, 427, 428, 498, 542, + 542, 542, 312, 289,32767,32767,32767,32767, 513, 513, + 101, 101, 101, 101, 508,32767,32767,32767,32767, 112, + 100, 100, 100, 100, 100, 104, 102,32767,32767,32767, + 32767, 223, 100,32767, 102, 102,32767,32767, 223, 225, + 212, 102, 227,32767, 561, 562, 223, 102, 227, 227, + 227, 247, 247, 485, 318, 102, 100, 102, 102, 197, + 318, 318,32767, 102, 485, 318, 485, 318, 199, 318, + 318, 318, 485, 318,32767, 102, 318, 214, 100, 100, + 318,32767,32767,32767, 498,32767,32767,32767,32767,32767, + 32767,32767, 222,32767,32767,32767,32767,32767,32767,32767, + 529,32767, 546, 559, 432, 433, 435, 544, 457, 458, + 459, 460, 461, 462, 463, 465, 591,32767, 502,32767, + 32767,32767, 338, 601,32767, 601,32767,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767, 531, 444,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 103,32767, 101, 533, - 409, 411, 501, 422, 423, 421, 391,32767, 508,32767, - 103, 510,32767,32767,32767,32767,32767,32767,32767, 532, - 32767, 539, 539,32767, 494, 101, 194,32767,32767,32767, - 194, 194,32767,32767,32767,32767,32767,32767,32767,32767, - 600, 494, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111,32767, 194, 111,32767,32767,32767, 101, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 189,32767, 267, 269, 103, 554, 194,32767, 513,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767, 506, + 32767, 602,32767, 542,32767,32767,32767,32767, 431, 9, + 76, 491, 43, 44, 52, 58, 519, 520, 521, 522, + 516, 517, 523, 518,32767,32767, 524, 567,32767,32767, + 543, 594,32767,32767,32767,32767,32767,32767, 139,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767, 494, 432, 139,32767, 139, 539, - 424, 425, 426, 496, 539, 539, 539, 311, 288,32767, - 32767,32767,32767, 511, 511, 101, 101, 101, 101, 506, - 32767,32767,32767,32767, 112, 100, 100, 100, 100, 100, - 104, 102,32767,32767,32767,32767, 222, 100,32767, 102, - 102,32767,32767, 222, 224, 211, 102, 226,32767, 558, - 559, 222, 102, 226, 226, 226, 246, 246, 483, 317, - 102, 100, 102, 102, 196, 317, 317,32767, 102, 483, - 317, 483, 317, 198, 317, 317, 317, 483, 317,32767, - 102, 317, 213, 100, 100, 317,32767,32767,32767, 496, - 32767,32767,32767,32767,32767,32767,32767, 221,32767,32767, - 32767,32767,32767,32767,32767, 526,32767, 543, 556, 430, - 431, 433, 541, 455, 456, 457, 458, 459, 460, 461, - 463, 588,32767, 500,32767,32767,32767,32767, 337, 598, - 32767, 598,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 599,32767, 539, - 32767,32767,32767,32767, 429, 9, 76, 489, 43, 44, - 52, 58, 517, 518, 519, 520, 514, 515, 521, 516, - 32767,32767, 522, 564,32767,32767, 540, 591,32767,32767, - 32767,32767,32767,32767, 139,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767, 526,32767, 137,32767, + 529,32767, 137,32767,32767,32767,32767,32767,32767,32767, + 32767, 525,32767,32767,32767, 542,32767,32767,32767,32767, + 314, 311,32767,32767,32767,32767,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767,32767, 542,32767, + 32767,32767,32767,32767, 291,32767, 308,32767,32767,32767, 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 539,32767,32767,32767,32767, 313, 310,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767, 539,32767,32767,32767,32767,32767, 290, - 32767, 307,32767,32767,32767,32767,32767,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767,32767, 285,32767, - 32767, 379,32767,32767,32767,32767, 358,32767,32767,32767, - 32767,32767,32767,32767,32767,32767,32767, 152, 152, 3, - 3, 340, 152, 152, 152, 340, 340, 152, 340, 340, - 340, 152, 152, 152, 152, 152, 152, 279, 184, 261, - 264, 246, 246, 152, 350, 152 + 32767,32767,32767, 286,32767,32767, 381, 498, 294, 296, + 297,32767,32767,32767,32767, 360,32767,32767,32767,32767, + 32767,32767,32767,32767,32767,32767,32767, 153, 153, 3, + 3, 341, 153, 153, 153, 341, 341, 153, 341, 341, + 341, 153, 153, 153, 153, 153, 153, 280, 185, 262, + 265, 247, 247, 153, 352, 153 ); protected $goto = array( - 194, 194, 685, 425, 653, 346, 614, 650, 419, 310, - 311, 331, 569, 316, 424, 332, 426, 630, 1200, 930, - 693, 1051, 1201, 1204, 931, 1205, 165, 165, 165, 165, - 218, 195, 191, 191, 175, 177, 213, 191, 191, 191, - 191, 191, 192, 192, 192, 192, 192, 192, 186, 187, - 188, 189, 190, 215, 213, 216, 529, 530, 415, 531, - 533, 534, 535, 536, 537, 538, 539, 540, 1120, 166, - 167, 168, 193, 169, 170, 171, 164, 172, 173, 174, - 176, 212, 214, 217, 235, 240, 241, 242, 254, 255, - 256, 257, 258, 259, 260, 261, 263, 264, 265, 266, - 278, 279, 313, 314, 315, 420, 421, 422, 574, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 178, 234, 179, 196, 197, 198, - 236, 186, 187, 188, 189, 190, 215, 1120, 199, 180, - 181, 182, 200, 196, 183, 237, 201, 199, 163, 202, - 203, 184, 204, 205, 206, 185, 207, 208, 209, 210, - 211, 275, 275, 275, 275, 843, 593, 646, 647, 560, - 664, 665, 666, 720, 629, 631, 840, 418, 651, 604, - 841, 350, 675, 679, 996, 683, 691, 992, 616, 616, - 817, 350, 350, 1252, 1252, 1252, 1252, 1252, 1252, 1252, - 1252, 1252, 1252, 1092, 1093, 350, 350, 874, 350, 848, - 1337, 896, 891, 892, 905, 849, 893, 846, 894, 895, - 847, 548, 900, 899, 901, 350, 391, 394, 554, 594, - 598, 1270, 1270, 1072, 1068, 1069, 1270, 1270, 1270, 1270, - 1270, 1270, 1270, 1270, 1270, 1270, 1268, 1268, 815, 347, - 348, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, - 1268, 1221, 1020, 1221, 1020, 1221, 836, 5, 1020, 6, - 1020, 1020, 1281, 961, 1020, 1020, 1020, 1020, 1020, 1020, - 1020, 1020, 1020, 1020, 1020, 349, 349, 349, 349, 1221, - 460, 460, 566, 678, 1221, 1221, 1221, 1221, 344, 460, - 1221, 1221, 1221, 1302, 1302, 1302, 1302, 602, 617, 620, - 621, 622, 623, 643, 644, 645, 695, 836, 912, 553, - 546, 1310, 913, 548, 532, 532, 821, 856, 982, 532, - 532, 532, 532, 532, 532, 532, 532, 532, 532, 543, - 473, 543, 868, 543, 928, 855, 928, 389, 475, 337, - 546, 553, 562, 563, 339, 572, 595, 609, 610, 1320, - 1320, 249, 249, 1026, 1025, 15, 821, 450, 821, 494, - 565, 495, 955, 955, 955, 955, 1320, 501, 450, 949, - 956, 839, 652, 1321, 1321, 1169, 1214, 246, 246, 246, - 246, 248, 250, 1323, 985, 959, 959, 957, 959, 719, - 1321, 545, 994, 989, 470, 1295, 1296, 953, 405, 692, - 917, 1108, 432, 541, 541, 541, 541, 612, 597, 452, - 444, 1029, 1030, 1001, 658, 444, 1292, 444, 1292, 674, - 1292, 860, 833, 656, 980, 836, 861, 547, 557, 854, - 321, 305, 547, 333, 557, 1297, 1298, 392, 456, 570, - 607, 1211, 944, 398, 858, 1304, 1304, 1304, 1304, 463, - 573, 464, 465, 608, 1004, 866, 403, 404, 1328, 1329, - 1057, 662, 1212, 663, 471, 407, 408, 409, 723, 676, - 870, 1288, 410, 624, 626, 627, 342, 427, 1216, 869, - 857, 1056, 1060, 427, 864, 1061, 1103, 966, 0, 0, - 964, 1027, 1027, 0, 0, 0, 657, 1038, 1034, 1035, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 0, 1059, 444, 954, 0, 1290, 1290, 1059, 592, - 1085, 0, 696, 682, 682, 0, 502, 688, 1083, 0, - 0, 0, 1217, 1218, 272, 428, 1101, 873, 0, 544, - 831, 544, 0, 0, 0, 673, 938, 0, 0, 1015, - 1031, 1032, 0, 0, 0, 0, 0, 0, 1219, 1278, - 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 252, 252, + 196, 196, 1031, 703, 694, 430, 658, 1062, 1334, 1334, + 424, 313, 314, 335, 573, 319, 429, 336, 431, 635, + 651, 652, 850, 669, 670, 671, 1334, 167, 167, 167, + 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, + 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, + 189, 190, 191, 192, 218, 216, 219, 534, 535, 420, + 536, 538, 539, 540, 541, 542, 543, 544, 545, 1132, + 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, + 176, 178, 215, 217, 220, 238, 243, 244, 245, 257, + 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, + 271, 281, 282, 316, 317, 318, 425, 426, 427, 578, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, + 200, 239, 188, 189, 190, 191, 192, 218, 1132, 201, + 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, + 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, + 212, 213, 214, 853, 851, 278, 278, 278, 278, 418, + 620, 620, 350, 570, 597, 1265, 1265, 1265, 1265, 1265, + 1265, 1265, 1265, 1265, 1265, 1283, 1283, 831, 618, 655, + 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, + 353, 353, 353, 353, 866, 557, 550, 858, 825, 907, + 902, 903, 916, 859, 904, 856, 905, 906, 857, 878, + 457, 910, 865, 884, 546, 546, 546, 546, 831, 601, + 831, 1084, 1079, 1080, 1081, 341, 550, 557, 566, 567, + 343, 576, 599, 613, 614, 407, 408, 972, 465, 465, + 667, 15, 668, 1323, 411, 412, 413, 465, 681, 348, + 1233, 414, 1233, 478, 569, 346, 439, 1031, 1031, 1233, + 993, 480, 1031, 393, 1031, 1031, 1104, 1105, 1031, 1031, + 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1315, + 1315, 1315, 1315, 1233, 657, 1333, 1333, 1055, 1233, 1233, + 1233, 1233, 1037, 1036, 1233, 1233, 1233, 1034, 1034, 1181, + 354, 678, 949, 1333, 437, 1026, 1042, 1043, 337, 691, + 354, 354, 827, 923, 691, 1040, 1041, 924, 691, 663, + 1336, 939, 871, 939, 354, 354, 1281, 1281, 354, 679, + 1350, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, + 1281, 552, 537, 537, 911, 354, 912, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 548, 564, 548, + 574, 611, 730, 634, 636, 849, 548, 656, 475, 1308, + 1309, 680, 684, 1007, 692, 701, 1003, 252, 252, 996, + 970, 970, 968, 970, 729, 843, 549, 1005, 1000, 423, + 455, 608, 1294, 846, 955, 966, 966, 966, 966, 325, + 308, 455, 960, 967, 249, 249, 249, 249, 251, 253, + 402, 351, 352, 683, 868, 551, 561, 449, 449, 449, + 551, 1305, 561, 1305, 612, 396, 461, 1010, 1010, 1224, + 1305, 395, 398, 558, 598, 602, 1015, 468, 577, 469, + 470, 1310, 1311, 876, 552, 846, 1341, 1342, 964, 409, + 702, 733, 324, 275, 324, 1317, 1317, 1317, 1317, 606, + 621, 624, 625, 626, 627, 648, 649, 650, 705, 1068, + 596, 1097, 874, 706, 476, 1228, 507, 697, 880, 1095, + 1115, 432, 1301, 628, 630, 632, 432, 879, 867, 1067, + 1071, 5, 1072, 6, 1038, 1038, 977, 0, 975, 662, + 1049, 1045, 1046, 0, 0, 0, 0, 1226, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 928, + 1120, 449, 965, 1070, 0, 0, 616, 1303, 1303, 1070, + 1229, 1230, 1012, 499, 0, 500, 0, 0, 841, 0, + 870, 506, 661, 991, 1113, 883, 1212, 941, 864, 0, + 1213, 1216, 942, 1217, 0, 0, 1231, 1291, 1292, 0, + 1223, 0, 0, 0, 846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 999, 999 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 255, 255 ); protected $gotoCheck = array( - 42, 42, 72, 65, 65, 96, 55, 55, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 78, 78, - 9, 126, 78, 78, 78, 78, 42, 42, 42, 42, + 42, 42, 72, 9, 72, 65, 65, 126, 181, 181, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 85, 85, 26, 85, 85, 85, 181, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -773,97 +779,97 @@ class Php7 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 23, 23, 23, 23, 15, 129, 85, 85, 48, - 85, 85, 85, 48, 48, 48, 26, 13, 48, 13, - 27, 14, 48, 48, 48, 48, 48, 48, 107, 107, - 7, 14, 14, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 143, 143, 14, 14, 45, 14, 15, - 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 14, 64, 15, 64, 14, 58, 58, 58, 58, - 58, 168, 168, 15, 15, 15, 168, 168, 168, 168, - 168, 168, 168, 168, 168, 168, 169, 169, 6, 96, - 96, 169, 169, 169, 169, 169, 169, 169, 169, 169, - 169, 72, 72, 72, 72, 72, 22, 46, 72, 46, - 72, 72, 14, 49, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 24, 24, 24, 24, 72, - 148, 148, 170, 14, 72, 72, 72, 72, 177, 148, - 72, 72, 72, 9, 9, 9, 9, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 22, 72, 75, - 75, 179, 72, 14, 171, 171, 12, 35, 102, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 19, - 83, 19, 35, 19, 9, 35, 9, 61, 83, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 180, - 180, 5, 5, 117, 117, 75, 12, 19, 12, 154, - 103, 154, 19, 19, 19, 19, 180, 154, 19, 19, - 19, 25, 63, 181, 181, 150, 14, 5, 5, 5, - 5, 5, 5, 180, 25, 25, 25, 25, 25, 25, - 181, 25, 25, 25, 174, 174, 174, 92, 92, 92, - 17, 17, 112, 106, 106, 106, 106, 17, 106, 82, - 23, 118, 118, 17, 119, 23, 129, 23, 129, 115, - 129, 17, 18, 17, 17, 22, 39, 9, 9, 17, - 167, 167, 9, 29, 9, 176, 176, 9, 9, 2, - 2, 17, 91, 28, 37, 129, 129, 129, 129, 9, - 9, 9, 9, 79, 109, 9, 81, 81, 9, 9, - 128, 81, 159, 81, 156, 81, 81, 81, 98, 81, - 41, 129, 81, 84, 84, 84, 81, 116, 20, 16, - 16, 16, 16, 116, 9, 131, 146, 95, -1, -1, - 16, 116, 116, -1, -1, -1, 116, 116, 116, 116, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, -1, 129, 23, 16, -1, 129, 129, 129, 8, - 8, -1, 8, 8, 8, -1, 8, 8, 8, -1, - -1, -1, 20, 20, 24, 88, 16, 16, -1, 24, - 20, 24, -1, -1, -1, 88, 88, -1, -1, 88, - 88, 88, -1, -1, -1, -1, -1, -1, 20, 20, - 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5, 5, + 42, 42, 42, 15, 27, 23, 23, 23, 23, 43, + 107, 107, 96, 170, 129, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 168, 168, 12, 55, 55, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 24, 24, 24, 24, 35, 75, 75, 15, 6, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, + 82, 15, 35, 45, 106, 106, 106, 106, 12, 106, + 12, 15, 15, 15, 15, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 81, 81, 49, 148, 148, + 81, 75, 81, 179, 81, 81, 81, 148, 81, 177, + 72, 81, 72, 83, 103, 81, 82, 72, 72, 72, + 102, 83, 72, 61, 72, 72, 143, 143, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 9, + 9, 9, 9, 72, 63, 180, 180, 113, 72, 72, + 72, 72, 117, 117, 72, 72, 72, 88, 88, 150, + 14, 88, 88, 180, 112, 88, 88, 88, 29, 7, + 14, 14, 7, 72, 7, 118, 118, 72, 7, 119, + 180, 9, 39, 9, 14, 14, 169, 169, 14, 115, + 14, 169, 169, 169, 169, 169, 169, 169, 169, 169, + 169, 14, 171, 171, 64, 14, 64, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 19, 48, 19, + 2, 2, 48, 48, 48, 25, 19, 48, 174, 174, + 174, 48, 48, 48, 48, 48, 48, 5, 5, 25, + 25, 25, 25, 25, 25, 18, 25, 25, 25, 13, + 19, 13, 14, 22, 91, 19, 19, 19, 19, 167, + 167, 19, 19, 19, 5, 5, 5, 5, 5, 5, + 28, 96, 96, 14, 37, 9, 9, 23, 23, 23, + 9, 129, 9, 129, 79, 9, 9, 106, 106, 159, + 129, 58, 58, 58, 58, 58, 109, 9, 9, 9, + 9, 176, 176, 9, 14, 22, 9, 9, 92, 92, + 92, 98, 24, 24, 24, 129, 129, 129, 129, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 128, + 8, 8, 9, 8, 156, 20, 8, 8, 41, 8, + 146, 116, 129, 84, 84, 84, 116, 16, 16, 16, + 16, 46, 131, 46, 116, 116, 95, -1, 16, 116, + 116, 116, 116, -1, -1, -1, -1, 14, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 17, + 17, 23, 16, 129, -1, -1, 17, 129, 129, 129, + 20, 20, 17, 154, -1, 154, -1, -1, 20, -1, + 17, 154, 17, 17, 16, 16, 78, 78, 17, -1, + 78, 78, 78, 78, -1, -1, 20, 20, 20, -1, + 17, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 106, 106 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 5 ); protected $gotoBase = array( - 0, 0, -250, 0, 0, 360, 235, 181, 522, 7, - 0, 0, 33, -156, -113, -178, 43, -49, 126, 72, - 100, 0, -9, 158, 282, 377, 172, 176, 120, 150, - 0, 0, 0, 0, 0, -39, 0, 119, 0, 116, - 0, 45, -1, 0, 0, 195, -456, 0, -529, 250, - 0, 0, 0, 0, 0, -33, 0, 0, 182, 0, - 0, 306, 0, 143, 203, -235, 0, 0, 0, 0, - 0, 0, -6, 0, 0, -21, 0, 0, -385, 124, - -46, -19, 144, -123, 10, -538, 0, 0, 275, 0, - 0, 127, 106, 0, 0, 60, -472, 0, 76, 0, - 0, 0, 294, 328, 0, 0, 386, -50, 0, 99, - 0, 0, 138, 0, 0, 149, 219, 87, 139, 137, - 0, 0, 0, 0, 0, 0, 19, 0, 101, 159, - 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -69, 0, 0, 58, 0, 257, 0, - 114, 0, 0, 0, -120, 0, 40, 0, 0, 108, - 0, 0, 0, 0, 0, 0, 0, 122, -7, 8, - 264, 86, 0, 0, 107, 0, 78, 269, 0, 291, - 55, 79, 0, 0 + 0, 0, -339, 0, 0, 386, 195, 312, 472, -10, + 0, 0, -109, 62, 13, -184, 46, 65, 86, 102, + 93, 0, 125, 162, 197, 371, 18, 160, 83, 22, + 0, 0, 0, 0, 0, -166, 0, 85, 0, 9, + 0, 48, -1, 157, 0, 207, -232, 0, -340, 223, + 0, 0, 0, 0, 0, 148, 0, 0, 396, 0, + 0, 231, 0, 52, 334, -236, 0, 0, 0, 0, + 0, 0, -5, 0, 0, -139, 0, 0, 149, 91, + 112, -245, -58, -205, 15, -695, 0, 0, 28, 0, + 0, 75, 154, 0, 0, 64, -310, 0, 55, 0, + 0, 0, 235, 221, 0, 0, 196, -71, 0, 77, + 0, 0, 37, 24, 0, 56, 219, 23, 40, 39, + 0, 0, 0, 0, 0, 0, 5, 0, 106, 166, + 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 47, 0, 214, 0, + 35, 0, 0, 0, 49, 0, 45, 0, 0, 71, + 0, 0, 0, 0, 0, 0, 0, 88, -56, 95, + 144, 111, 0, 0, 78, 0, 80, 229, 0, 222, + -12, -299, 0, 0 ); protected $gotoDefault = array( - -32768, 506, 727, 4, 728, 921, 804, 813, 590, 523, - 694, 343, 618, 416, 1286, 898, 1107, 571, 832, 1230, - 1238, 451, 835, 326, 717, 880, 881, 882, 395, 381, - 387, 393, 641, 619, 488, 867, 447, 859, 480, 862, - 446, 871, 162, 413, 504, 875, 3, 877, 550, 908, - 382, 885, 383, 669, 887, 556, 889, 890, 390, 396, - 397, 1112, 564, 615, 902, 253, 558, 903, 380, 904, - 911, 385, 388, 680, 459, 499, 493, 406, 1087, 559, - 601, 638, 441, 467, 613, 625, 611, 474, 1023, 411, - 325, 943, 951, 481, 457, 965, 345, 973, 725, 1119, - 632, 483, 981, 633, 988, 991, 524, 525, 472, 1003, - 268, 1006, 484, 1044, 659, 1017, 1018, 660, 634, 1040, - 635, 661, 636, 1042, 466, 591, 1050, 448, 1058, 1274, - 449, 1062, 262, 1065, 274, 412, 429, 1070, 1071, 8, - 1077, 686, 687, 10, 273, 503, 1102, 681, 445, 1118, - 433, 1188, 1190, 552, 485, 1208, 1207, 672, 500, 1213, - 442, 1277, 443, 526, 468, 312, 527, 304, 329, 309, - 542, 291, 330, 528, 469, 1283, 1291, 327, 30, 1311, - 1322, 338, 568, 606 + -32768, 511, 737, 4, 738, 932, 814, 823, 594, 528, + 704, 347, 622, 421, 1299, 909, 1119, 575, 842, 1242, + 1250, 456, 845, 330, 727, 891, 892, 893, 399, 385, + 391, 397, 646, 623, 493, 877, 452, 869, 485, 872, + 451, 881, 164, 417, 509, 885, 3, 888, 554, 919, + 386, 896, 387, 674, 898, 560, 900, 901, 394, 400, + 401, 1124, 568, 619, 913, 256, 562, 914, 384, 915, + 922, 389, 392, 685, 464, 504, 498, 410, 1099, 563, + 605, 643, 446, 472, 617, 629, 615, 479, 433, 415, + 329, 954, 962, 486, 462, 976, 349, 984, 735, 1131, + 637, 488, 992, 638, 999, 1002, 529, 530, 477, 1014, + 272, 1017, 489, 12, 664, 1028, 1029, 665, 639, 1051, + 640, 666, 641, 1053, 471, 595, 1061, 453, 1069, 1287, + 454, 1073, 266, 1076, 277, 416, 434, 1082, 1083, 9, + 1089, 695, 696, 11, 276, 508, 1114, 686, 450, 1130, + 438, 1200, 1202, 556, 490, 1220, 1219, 677, 505, 1225, + 447, 1290, 448, 531, 473, 315, 532, 307, 333, 312, + 547, 294, 334, 533, 474, 1296, 1304, 331, 31, 1324, + 1335, 342, 572, 610 ); protected $ruleToNonTerminal = array( @@ -882,30 +888,30 @@ class Php7 extends \PhpParser\ParserAbstract 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, - 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, + 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 25, 25, 68, 68, 71, 71, 70, 69, - 69, 62, 74, 74, 75, 75, 76, 76, 77, 77, - 78, 78, 79, 79, 26, 26, 27, 27, 27, 27, - 27, 87, 87, 89, 89, 82, 82, 90, 90, 91, - 91, 91, 83, 83, 86, 86, 84, 84, 92, 93, - 93, 56, 56, 64, 64, 67, 67, 67, 66, 94, - 94, 95, 57, 57, 57, 57, 96, 96, 97, 97, - 98, 98, 99, 100, 100, 101, 101, 102, 102, 54, - 54, 50, 50, 104, 52, 52, 105, 51, 51, 53, - 53, 63, 63, 63, 63, 80, 80, 108, 108, 110, - 110, 111, 111, 111, 111, 109, 109, 109, 113, 113, - 113, 113, 88, 88, 116, 116, 116, 117, 117, 114, - 114, 118, 118, 120, 120, 121, 121, 115, 122, 122, - 119, 123, 123, 123, 123, 112, 112, 81, 81, 81, - 20, 20, 20, 125, 124, 124, 126, 126, 126, 126, - 59, 127, 127, 128, 60, 130, 130, 131, 131, 132, - 132, 85, 133, 133, 133, 133, 133, 133, 138, 138, - 139, 139, 140, 140, 140, 140, 140, 141, 142, 142, - 137, 137, 134, 134, 136, 136, 144, 144, 143, 143, - 143, 143, 143, 143, 143, 135, 145, 145, 147, 146, - 146, 61, 103, 148, 148, 55, 55, 42, 42, 42, + 49, 49, 49, 25, 25, 68, 68, 71, 71, 70, + 69, 69, 62, 74, 74, 75, 75, 76, 76, 77, + 77, 78, 78, 79, 79, 26, 26, 27, 27, 27, + 27, 27, 87, 87, 89, 89, 82, 82, 90, 90, + 91, 91, 91, 83, 83, 86, 86, 84, 84, 92, + 93, 93, 56, 56, 64, 64, 67, 67, 67, 66, + 94, 94, 95, 57, 57, 57, 57, 96, 96, 97, + 97, 98, 98, 99, 100, 100, 101, 101, 102, 102, + 54, 54, 50, 50, 104, 52, 52, 105, 51, 51, + 53, 53, 63, 63, 63, 63, 80, 80, 108, 108, + 110, 110, 111, 111, 111, 111, 109, 109, 109, 113, + 113, 113, 113, 88, 88, 116, 116, 116, 117, 117, + 114, 114, 118, 118, 120, 120, 121, 121, 115, 122, + 122, 119, 123, 123, 123, 123, 112, 112, 81, 81, + 81, 20, 20, 20, 125, 124, 124, 126, 126, 126, + 126, 59, 127, 127, 128, 60, 130, 130, 131, 131, + 132, 132, 85, 133, 133, 133, 133, 133, 133, 133, + 138, 138, 139, 139, 140, 140, 140, 140, 140, 141, + 142, 142, 137, 137, 134, 134, 136, 136, 144, 144, + 143, 143, 143, 143, 143, 143, 143, 135, 145, 145, + 147, 146, 146, 61, 103, 148, 148, 55, 55, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -915,20 +921,20 @@ class Php7 extends \PhpParser\ParserAbstract 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 155, 149, 149, 154, 154, 157, 158, 158, 159, 160, - 161, 161, 161, 161, 19, 19, 72, 72, 72, 72, - 150, 150, 150, 150, 163, 163, 151, 151, 153, 153, - 153, 156, 156, 168, 168, 168, 168, 168, 168, 168, - 168, 168, 169, 169, 107, 171, 171, 171, 171, 152, - 152, 152, 152, 152, 152, 152, 152, 58, 58, 166, - 166, 166, 166, 172, 172, 162, 162, 162, 173, 173, - 173, 173, 173, 173, 73, 73, 65, 65, 65, 65, - 129, 129, 129, 129, 176, 175, 165, 165, 165, 165, - 165, 165, 165, 164, 164, 164, 174, 174, 174, 174, - 106, 170, 178, 178, 177, 177, 179, 179, 179, 179, - 179, 179, 179, 179, 167, 167, 167, 167, 181, 182, - 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, - 183, 183 + 42, 42, 155, 149, 149, 154, 154, 157, 158, 158, + 159, 160, 161, 161, 161, 161, 19, 19, 72, 72, + 72, 72, 150, 150, 150, 150, 163, 163, 151, 151, + 153, 153, 153, 156, 156, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 169, 169, 169, 107, 171, 171, + 171, 171, 152, 152, 152, 152, 152, 152, 152, 152, + 58, 58, 166, 166, 166, 166, 172, 172, 162, 162, + 162, 173, 173, 173, 173, 173, 173, 73, 73, 65, + 65, 65, 65, 129, 129, 129, 129, 176, 175, 165, + 165, 165, 165, 165, 165, 165, 164, 164, 164, 174, + 174, 174, 174, 106, 170, 178, 178, 177, 177, 179, + 179, 179, 179, 179, 179, 179, 179, 167, 167, 167, + 167, 181, 182, 180, 180, 180, 180, 180, 180, 180, + 180, 183, 183, 183, 183 ); protected $ruleToLength = array( @@ -947,53 +953,53 @@ class Php7 extends \PhpParser\ParserAbstract 3, 4, 2, 3, 1, 1, 7, 6, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, - 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, - 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, - 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, - 2, 1, 1, 1, 0, 2, 1, 3, 8, 0, - 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, - 3, 1, 1, 1, 8, 9, 7, 8, 7, 6, - 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, - 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, - 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, - 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, - 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, - 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, - 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, - 2, 1, 1, 1, 1, 6, 8, 6, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, - 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, - 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, - 2, 4, 3, 1, 1, 3, 1, 2, 2, 3, - 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, - 0, 1, 5, 5, 10, 3, 5, 1, 1, 3, - 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, - 3, 2, 2, 3, 1, 0, 1, 1, 3, 3, - 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, + 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, + 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, + 3, 2, 1, 1, 1, 0, 2, 1, 3, 8, + 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, + 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, + 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, + 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, + 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, + 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, + 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, + 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, + 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, + 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, + 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, + 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, + 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, + 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, + 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, + 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, + 3, 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, - 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, - 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, - 8, 3, 2, 0, 4, 2, 1, 3, 2, 1, - 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 1, 1, 0, 3, 0, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 4, 1, 1, 3, 1, - 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, - 3, 1, 1, 1, 1, 1, 3, 1, 1, 4, - 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, - 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, - 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, - 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, - 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, - 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, - 2, 1 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, + 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, + 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, + 9, 10, 8, 3, 2, 0, 4, 2, 1, 3, + 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 0, 3, + 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, + 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, + 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, + 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, + 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, + 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, + 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, + 3, 1, 1, 2, 1 ); protected function initReduceCallbacks() { @@ -1456,20 +1462,20 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 150 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 151 => function ($stackPos) { - if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos-(3-1)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributeStack[$stackPos-(3-1)]), $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 152 => function ($stackPos) { - $this->semValue = array(); + if (is_array($this->semStack[$stackPos-(2-2)])) { $this->semValue = array_merge($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); } else { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }; }, 153 => function ($stackPos) { - $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; - if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 154 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; + if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 155 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -1478,9 +1484,12 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 157 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 158 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 159 => function ($stackPos) { if ($this->semStack[$stackPos-(3-2)]) { $this->semValue = $this->semStack[$stackPos-(3-2)]; $attrs = $this->startAttributeStack[$stackPos-(3-1)]; $stmts = $this->semValue; if (!empty($attrs['comments'])) {$stmts[0]->setAttribute('comments', array_merge($attrs['comments'], $stmts[0]->getAttribute('comments', []))); }; @@ -1490,46 +1499,46 @@ class Php7 extends \PhpParser\ParserAbstract } }, - 159 => function ($stackPos) { + 160 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(7-3)], ['stmts' => is_array($this->semStack[$stackPos-(7-5)]) ? $this->semStack[$stackPos-(7-5)] : array($this->semStack[$stackPos-(7-5)]), 'elseifs' => $this->semStack[$stackPos-(7-6)], 'else' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 160 => function ($stackPos) { + 161 => function ($stackPos) { $this->semValue = new Stmt\If_($this->semStack[$stackPos-(10-3)], ['stmts' => $this->semStack[$stackPos-(10-6)], 'elseifs' => $this->semStack[$stackPos-(10-7)], 'else' => $this->semStack[$stackPos-(10-8)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 161 => function ($stackPos) { + 162 => function ($stackPos) { $this->semValue = new Stmt\While_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 162 => function ($stackPos) { + 163 => function ($stackPos) { $this->semValue = new Stmt\Do_($this->semStack[$stackPos-(7-5)], is_array($this->semStack[$stackPos-(7-2)]) ? $this->semStack[$stackPos-(7-2)] : array($this->semStack[$stackPos-(7-2)]), $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 163 => function ($stackPos) { + 164 => function ($stackPos) { $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos-(9-3)], 'cond' => $this->semStack[$stackPos-(9-5)], 'loop' => $this->semStack[$stackPos-(9-7)], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 164 => function ($stackPos) { + 165 => function ($stackPos) { $this->semValue = new Stmt\Switch_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 165 => function ($stackPos) { + 166 => function ($stackPos) { $this->semValue = new Stmt\Break_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 166 => function ($stackPos) { + 167 => function ($stackPos) { $this->semValue = new Stmt\Continue_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 167 => function ($stackPos) { + 168 => function ($stackPos) { $this->semValue = new Stmt\Return_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 168 => function ($stackPos) { + 169 => function ($stackPos) { $this->semValue = new Stmt\Global_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 169 => function ($stackPos) { + 170 => function ($stackPos) { $this->semValue = new Stmt\Static_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 170 => function ($stackPos) { + 171 => function ($stackPos) { $this->semValue = new Stmt\Echo_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 171 => function ($stackPos) { + 172 => function ($stackPos) { $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 172 => function ($stackPos) { + 173 => function ($stackPos) { $e = $this->semStack[$stackPos-(2-1)]; if ($e instanceof Expr\Throw_) { @@ -1541,1128 +1550,1126 @@ class Php7 extends \PhpParser\ParserAbstract } }, - 173 => function ($stackPos) { + 174 => function ($stackPos) { $this->semValue = new Stmt\Unset_($this->semStack[$stackPos-(5-3)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 174 => function ($stackPos) { + 175 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos-(7-5)][1], 'stmts' => $this->semStack[$stackPos-(7-7)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, - 175 => function ($stackPos) { + 176 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(9-3)], $this->semStack[$stackPos-(9-7)][0], ['keyVar' => $this->semStack[$stackPos-(9-5)], 'byRef' => $this->semStack[$stackPos-(9-7)][1], 'stmts' => $this->semStack[$stackPos-(9-9)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 176 => function ($stackPos) { + 177 => function ($stackPos) { $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos-(6-3)], new Expr\Error($this->startAttributeStack[$stackPos-(6-4)] + $this->endAttributeStack[$stackPos-(6-4)]), ['stmts' => $this->semStack[$stackPos-(6-6)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 177 => function ($stackPos) { + 178 => function ($stackPos) { $this->semValue = new Stmt\Declare_($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 178 => function ($stackPos) { + 179 => function ($stackPos) { $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); }, - 179 => function ($stackPos) { + 180 => function ($stackPos) { $this->semValue = new Stmt\Goto_($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 180 => function ($stackPos) { + 181 => function ($stackPos) { $this->semValue = new Stmt\Label($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 181 => function ($stackPos) { + 182 => function ($stackPos) { $this->semValue = array(); /* means: no statement */ }, - 182 => function ($stackPos) { + 183 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 183 => function ($stackPos) { + 184 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos-(1-1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); } else { $this->semValue = null; }; if ($this->semValue === null) $this->semValue = array(); /* means: no statement */ }, - 184 => function ($stackPos) { + 185 => function ($stackPos) { $this->semValue = array(); }, - 185 => function ($stackPos) { + 186 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 186 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, 187 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 188 => function ($stackPos) { - $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); - }, - 189 => function ($stackPos) { - $this->semValue = null; - }, - 190 => function ($stackPos) { - $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 191 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 192 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 193 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, + 189 => function ($stackPos) { + $this->semValue = new Stmt\Catch_($this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-7)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + }, + 190 => function ($stackPos) { + $this->semValue = null; + }, + 191 => function ($stackPos) { + $this->semValue = new Stmt\Finally_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 192 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 193 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, 194 => function ($stackPos) { - $this->semValue = false; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 195 => function ($stackPos) { - $this->semValue = true; + $this->semValue = false; }, 196 => function ($stackPos) { - $this->semValue = false; + $this->semValue = true; }, 197 => function ($stackPos) { - $this->semValue = true; - }, - 198 => function ($stackPos) { $this->semValue = false; }, - 199 => function ($stackPos) { + 198 => function ($stackPos) { $this->semValue = true; }, + 199 => function ($stackPos) { + $this->semValue = false; + }, 200 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = true; }, 201 => function ($stackPos) { - $this->semValue = []; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 202 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = []; }, 203 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 204 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 205 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(8-3)], ['byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-5)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, 206 => function ($stackPos) { + $this->semValue = new Stmt\Function_($this->semStack[$stackPos-(9-4)], ['byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-6)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); + }, + 207 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(7-2)], ['type' => $this->semStack[$stackPos-(7-1)], 'extends' => $this->semStack[$stackPos-(7-3)], 'implements' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos-(7-2)); }, - 207 => function ($stackPos) { + 208 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos-(8-3)], ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos-(8-3)); }, - 208 => function ($stackPos) { + 209 => function ($stackPos) { $this->semValue = new Stmt\Interface_($this->semStack[$stackPos-(7-3)], ['extends' => $this->semStack[$stackPos-(7-4)], 'stmts' => $this->semStack[$stackPos-(7-6)], 'attrGroups' => $this->semStack[$stackPos-(7-1)]], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); $this->checkInterface($this->semValue, $stackPos-(7-3)); }, - 209 => function ($stackPos) { + 210 => function ($stackPos) { $this->semValue = new Stmt\Trait_($this->semStack[$stackPos-(6-3)], ['stmts' => $this->semStack[$stackPos-(6-5)], 'attrGroups' => $this->semStack[$stackPos-(6-1)]], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, - 210 => function ($stackPos) { + 211 => function ($stackPos) { $this->semValue = new Stmt\Enum_($this->semStack[$stackPos-(8-3)], ['scalarType' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); $this->checkEnum($this->semValue, $stackPos-(8-3)); }, - 211 => function ($stackPos) { - $this->semValue = null; - }, 212 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 213 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 214 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; + $this->semValue = null; }, 215 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, 216 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = 0; }, 217 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 218 => function ($stackPos) { - $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 219 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + $this->checkClassModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 220 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 221 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 222 => function ($stackPos) { - $this->semValue = null; + $this->semValue = Stmt\Class_::MODIFIER_READONLY; }, 223 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 224 => function ($stackPos) { - $this->semValue = array(); - }, - 225 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 226 => function ($stackPos) { - $this->semValue = array(); - }, - 227 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 228 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 229 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 230 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 231 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); - }, - 232 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 233 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); - }, - 234 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 235 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); - }, - 236 => function ($stackPos) { $this->semValue = null; }, - 237 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + 224 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 238 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 239 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 240 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 241 => function ($stackPos) { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 242 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; - }, - 243 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-3)]; - }, - 244 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 245 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(5-3)]; - }, - 246 => function ($stackPos) { + 225 => function ($stackPos) { $this->semValue = array(); }, + 226 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 227 => function ($stackPos) { + $this->semValue = array(); + }, + 228 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; + }, + 229 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 230 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 231 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 232 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 233 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 234 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 235 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 236 => function ($stackPos) { + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + }, + 237 => function ($stackPos) { + $this->semValue = null; + }, + 238 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 239 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 240 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 241 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 242 => function ($stackPos) { + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 243 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 244 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-3)]; + }, + 245 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 246 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(5-3)]; + }, 247 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array(); }, 248 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 249 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Stmt\Case_($this->semStack[$stackPos-(4-2)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 250 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 251 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, 252 => function ($stackPos) { - $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 253 => function ($stackPos) { - $this->semValue = []; + $this->semValue = new Expr\Match_($this->semStack[$stackPos-(7-3)], $this->semStack[$stackPos-(7-6)], $this->startAttributeStack[$stackPos-(7-1)] + $this->endAttributes); }, 254 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = []; }, 255 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 256 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 257 => function ($stackPos) { - $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 258 => function ($stackPos) { - $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Node\MatchArm($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 259 => function ($stackPos) { - $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; + $this->semValue = is_array($this->semStack[$stackPos-(1-1)]) ? $this->semStack[$stackPos-(1-1)] : array($this->semStack[$stackPos-(1-1)]); }, 261 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(4-2)]; }, 262 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 263 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); - }, - 264 => function ($stackPos) { $this->semValue = array(); }, - 265 => function ($stackPos) { + 263 => function ($stackPos) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, + 264 => function ($stackPos) { + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(5-3)], is_array($this->semStack[$stackPos-(5-5)]) ? $this->semStack[$stackPos-(5-5)] : array($this->semStack[$stackPos-(5-5)]), $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 265 => function ($stackPos) { + $this->semValue = array(); + }, 266 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 267 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-6)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); }, 268 => function ($stackPos) { - $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 269 => function ($stackPos) { $this->semValue = null; }, + 269 => function ($stackPos) { + $this->semValue = new Stmt\Else_(is_array($this->semStack[$stackPos-(2-2)]) ? $this->semStack[$stackPos-(2-2)] : array($this->semStack[$stackPos-(2-2)]), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, 270 => function ($stackPos) { - $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); + $this->semValue = null; }, 271 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = new Stmt\Else_($this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); }, 272 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-2)], true); + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 273 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)], false); + $this->semValue = array($this->semStack[$stackPos-(2-2)], true); }, 274 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 275 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)], false); }, 276 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos-(2-1)]; }, 277 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + $this->semValue = array(); }, 278 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, 279 => function ($stackPos) { - $this->semValue = 0; + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 280 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + $this->semValue = 0; }, 281 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; }, 282 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 283 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 284 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 285 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 286 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos-(6-6)], null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); $this->checkParam($this->semValue); }, - 286 => function ($stackPos) { + 287 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos-(8-6)], $this->semStack[$stackPos-(8-8)], $this->semStack[$stackPos-(8-3)], $this->semStack[$stackPos-(8-4)], $this->semStack[$stackPos-(8-5)], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes, $this->semStack[$stackPos-(8-2)], $this->semStack[$stackPos-(8-1)]); $this->checkParam($this->semValue); }, - 287 => function ($stackPos) { + 288 => function ($stackPos) { $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes), null, $this->semStack[$stackPos-(6-3)], $this->semStack[$stackPos-(6-4)], $this->semStack[$stackPos-(6-5)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-1)]); }, - 288 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, 289 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 290 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 291 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 292 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 293 => function ($stackPos) { - $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 294 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); + $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 295 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos-(1-1)]); }, 296 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 297 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 298 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 299 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 300 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 301 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 302 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 303 => function ($stackPos) { + 300 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, + 301 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 302 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 303 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, 304 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, 305 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, 306 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 307 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 308 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); }, - 309 => function ($stackPos) { + 307 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 310 => function ($stackPos) { + 308 => function ($stackPos) { $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, + 309 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 310 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, 311 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 312 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 313 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Node\NullableType($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 314 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Node\UnionType($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 315 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 316 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 317 => function ($stackPos) { - $this->semValue = null; - }, - 318 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-2)]; - }, - 319 => function ($stackPos) { - $this->semValue = null; - }, - 320 => function ($stackPos) { - $this->semValue = array(); - }, - 321 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(4-2)]; - }, - 322 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-2)]); - }, - 323 => function ($stackPos) { - $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 324 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 325 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 326 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 327 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 328 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 329 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); - }, - 330 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 331 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 332 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 333 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 334 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; + 318 => function ($stackPos) { + $this->semValue = null; }, - 335 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + 319 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-2)]; }, - 336 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); + 320 => function ($stackPos) { + $this->semValue = null; }, - 337 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 338 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 339 => function ($stackPos) { - if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } - }, - 340 => function ($stackPos) { + 321 => function ($stackPos) { $this->semValue = array(); }, + 322 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(4-2)]; + }, + 323 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-2)]); + }, + 324 => function ($stackPos) { + $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 325 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 326 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 327 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(1-1)], false, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 328 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], true, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 329 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(2-2)], false, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 330 => function ($stackPos) { + $this->semValue = new Node\Arg($this->semStack[$stackPos-(3-3)], false, false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->semStack[$stackPos-(3-1)]); + }, + 331 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 332 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 333 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 334 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 335 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 336 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 337 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 338 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 339 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 340 => function ($stackPos) { + if ($this->semStack[$stackPos-(2-2)] !== null) { $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; } + }, 341 => function ($stackPos) { + $this->semValue = array(); + }, + 342 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); } else { $nop = null; }; if ($nop !== null) { $this->semStack[$stackPos-(1-1)][] = $nop; } $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 342 => function ($stackPos) { + 343 => function ($stackPos) { $this->semValue = new Stmt\Property($this->semStack[$stackPos-(5-2)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-1)]); $this->checkProperty($this->semValue, $stackPos-(5-2)); }, - 343 => function ($stackPos) { + 344 => function ($stackPos) { $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-2)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes, $this->semStack[$stackPos-(5-1)]); $this->checkClassConst($this->semValue, $stackPos-(5-2)); }, - 344 => function ($stackPos) { + 345 => function ($stackPos) { + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos-(6-5)], $this->semStack[$stackPos-(6-2)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes, $this->semStack[$stackPos-(6-1)], $this->semStack[$stackPos-(6-4)]); + $this->checkClassConst($this->semValue, $stackPos-(6-2)); + }, + 346 => function ($stackPos) { $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos-(10-5)], ['type' => $this->semStack[$stackPos-(10-2)], 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-7)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); $this->checkClassMethod($this->semValue, $stackPos-(10-2)); }, - 345 => function ($stackPos) { + 347 => function ($stackPos) { $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 346 => function ($stackPos) { + 348 => function ($stackPos) { $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->semStack[$stackPos-(5-1)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, - 347 => function ($stackPos) { - $this->semValue = null; /* will be skipped */ - }, - 348 => function ($stackPos) { - $this->semValue = array(); - }, 349 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = null; /* will be skipped */ }, 350 => function ($stackPos) { $this->semValue = array(); }, 351 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 352 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 353 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); - }, - 354 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 355 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 356 => function ($stackPos) { - $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 357 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); - }, - 358 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 359 => function ($stackPos) { - $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); - }, - 360 => function ($stackPos) { - $this->semValue = null; - }, - 361 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 362 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 363 => function ($stackPos) { - $this->semValue = 0; - }, - 364 => function ($stackPos) { - $this->semValue = 0; - }, - 365 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 366 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 367 => function ($stackPos) { - $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; - }, - 368 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; - }, - 369 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; - }, - 370 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; - }, - 371 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_STATIC; - }, - 372 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - }, - 373 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; - }, - 374 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; - }, - 375 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 376 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 377 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 378 => function ($stackPos) { - $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 379 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 380 => function ($stackPos) { - $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 381 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 382 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 383 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 384 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 385 => function ($stackPos) { $this->semValue = array(); }, - 386 => function ($stackPos) { + 353 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 354 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 355 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(5-1)][0], $this->semStack[$stackPos-(5-1)][1], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 356 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], $this->semStack[$stackPos-(4-3)], null, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 357 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 358 => function ($stackPos) { + $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos-(4-1)][0], $this->semStack[$stackPos-(4-1)][1], null, $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 359 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)]); + }, + 360 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 361 => function ($stackPos) { + $this->semValue = array(null, $this->semStack[$stackPos-(1-1)]); + }, + 362 => function ($stackPos) { + $this->semValue = null; + }, + 363 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 364 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 365 => function ($stackPos) { + $this->semValue = 0; + }, + 366 => function ($stackPos) { + $this->semValue = 0; + }, + 367 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 368 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 369 => function ($stackPos) { + $this->checkModifier($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $stackPos-(2-2)); $this->semValue = $this->semStack[$stackPos-(2-1)] | $this->semStack[$stackPos-(2-2)]; + }, + 370 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; + }, + 371 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + }, + 372 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + }, + 373 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_STATIC; + }, + 374 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; + }, + 375 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_FINAL; + }, + 376 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, + 377 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 378 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 379 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 380 => function ($stackPos) { + $this->semValue = new Node\VarLikeIdentifier(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 381 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(1-1)], null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 382 => function ($stackPos) { + $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 383 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 384 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 385 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 386 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, 387 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = array(); }, 388 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 389 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 390 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 391 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 392 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\Assign($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 393 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 394 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 395 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 396 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 397 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 398 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 399 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 400 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 401 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 402 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 403 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 404 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 405 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 406 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 407 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 408 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 409 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 410 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 411 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 412 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 413 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 414 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 415 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 419 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 420 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 421 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 422 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 423 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 424 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 425 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 426 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 427 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 428 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 429 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 430 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 431 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 432 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 433 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 434 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 435 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 436 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 437 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 438 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 440 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 445 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 446 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 447 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-3)], $this->semStack[$stackPos-(5-5)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); }, 448 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos-(4-1)], null, $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 449 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 450 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 451 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 452 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 453 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 454 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 455 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 456 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos-(2-2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 457 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 458 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos-(2-1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos-(2-2)], $attrs); }, - 457 => function ($stackPos) { + 459 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 458 => function ($stackPos) { + 460 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 459 => function ($stackPos) { + 461 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 460 => function ($stackPos) { + 462 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 461 => function ($stackPos) { + 463 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 462 => function ($stackPos) { + 464 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes; $attrs['kind'] = strtolower($this->semStack[$stackPos-(2-1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos-(2-2)], $attrs); }, - 463 => function ($stackPos) { + 465 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 464 => function ($stackPos) { + 466 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 465 => function ($stackPos) { + 467 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 466 => function ($stackPos) { + 468 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 467 => function ($stackPos) { + 469 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 468 => function ($stackPos) { + 470 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(2-2)], null, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 469 => function ($stackPos) { + 471 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-2)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, - 470 => function ($stackPos) { + 472 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 471 => function ($stackPos) { + 473 => function ($stackPos) { $this->semValue = new Expr\Throw_($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 472 => function ($stackPos) { + 474 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'returnType' => $this->semStack[$stackPos-(8-6)], 'expr' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 473 => function ($stackPos) { + 475 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 474 => function ($stackPos) { + 476 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(8-2)], 'params' => $this->semStack[$stackPos-(8-4)], 'uses' => $this->semStack[$stackPos-(8-6)], 'returnType' => $this->semStack[$stackPos-(8-7)], 'stmts' => $this->semStack[$stackPos-(8-8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes); }, - 475 => function ($stackPos) { + 477 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 476 => function ($stackPos) { + 478 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'returnType' => $this->semStack[$stackPos-(9-7)], 'expr' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 477 => function ($stackPos) { + 479 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'returnType' => $this->semStack[$stackPos-(10-8)], 'expr' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 478 => function ($stackPos) { + 480 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => false, 'byRef' => $this->semStack[$stackPos-(9-3)], 'params' => $this->semStack[$stackPos-(9-5)], 'uses' => $this->semStack[$stackPos-(9-7)], 'returnType' => $this->semStack[$stackPos-(9-8)], 'stmts' => $this->semStack[$stackPos-(9-9)], 'attrGroups' => $this->semStack[$stackPos-(9-1)]], $this->startAttributeStack[$stackPos-(9-1)] + $this->endAttributes); }, - 479 => function ($stackPos) { + 481 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => true, 'byRef' => $this->semStack[$stackPos-(10-4)], 'params' => $this->semStack[$stackPos-(10-6)], 'uses' => $this->semStack[$stackPos-(10-8)], 'returnType' => $this->semStack[$stackPos-(10-9)], 'stmts' => $this->semStack[$stackPos-(10-10)], 'attrGroups' => $this->semStack[$stackPos-(10-1)]], $this->startAttributeStack[$stackPos-(10-1)] + $this->endAttributes); }, - 480 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); + 482 => function ($stackPos) { + $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos-(8-2)], 'extends' => $this->semStack[$stackPos-(8-4)], 'implements' => $this->semStack[$stackPos-(8-5)], 'stmts' => $this->semStack[$stackPos-(8-7)], 'attrGroups' => $this->semStack[$stackPos-(8-1)]], $this->startAttributeStack[$stackPos-(8-1)] + $this->endAttributes), $this->semStack[$stackPos-(8-3)]); $this->checkClass($this->semValue[0], -1); }, - 481 => function ($stackPos) { + 483 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 482 => function ($stackPos) { + 484 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos-(2-2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 483 => function ($stackPos) { + 485 => function ($stackPos) { $this->semValue = array(); }, - 484 => function ($stackPos) { + 486 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(4-3)]; }, - 485 => function ($stackPos) { + 487 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(2-1)]; }, - 486 => function ($stackPos) { + 488 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos-(1-1)]); }, - 487 => function ($stackPos) { + 489 => function ($stackPos) { $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; }, - 488 => function ($stackPos) { + 490 => function ($stackPos) { $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos-(2-2)], $this->semStack[$stackPos-(2-1)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, - 489 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 490 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, 491 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 492 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 493 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 494 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); }, 495 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 496 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 497 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 498 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 499 => function ($stackPos) { - $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 500 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\FullyQualified(substr($this->semStack[$stackPos-(1-1)], 1), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 501 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Name\Relative(substr($this->semStack[$stackPos-(1-1)], 10), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 502 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 503 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 504 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 505 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 506 => function ($stackPos) { - $this->semValue = null; - }, - 507 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, - 508 => function ($stackPos) { - $this->semValue = array(); + 505 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; }, - 509 => function ($stackPos) { - $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); - }, - 510 => function ($stackPos) { - foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 511 => function ($stackPos) { - $this->semValue = array(); - }, - 512 => function ($stackPos) { + 506 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, + 507 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 508 => function ($stackPos) { + $this->semValue = null; + }, + 509 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(3-2)]; + }, + 510 => function ($stackPos) { + $this->semValue = array(); + }, + 511 => function ($stackPos) { + $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos-(1-1)], '`'), $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes)); + }, + 512 => function ($stackPos) { + foreach ($this->semStack[$stackPos-(1-1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', true); } }; $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, 513 => function ($stackPos) { - $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = array(); }, 514 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 515 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 516 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 517 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 518 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 519 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 520 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 521 => function ($stackPos) { - $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 522 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 523 => function ($stackPos) { - $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, 524 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 525 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(5-1)], $this->semStack[$stackPos-(5-4)], $this->startAttributeStack[$stackPos-(5-1)] + $this->endAttributes); + }, + 526 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos-(3-1)], new Expr\Error($this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)]), $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); $this->errorState = 2; + }, + 527 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(3-2)], $attrs); }, - 525 => function ($stackPos) { + 528 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos-(4-3)], $attrs); }, - 526 => function ($stackPos) { + 529 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 527 => function ($stackPos) { + 530 => function ($stackPos) { $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 528 => function ($stackPos) { + 531 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($this->semStack[$stackPos-(3-2)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '"', true); } }; $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos-(3-2)], $attrs); }, - 529 => function ($stackPos) { + 532 => function ($stackPos) { $this->semValue = $this->parseLNumber($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 530 => function ($stackPos) { + 533 => function ($stackPos) { $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); }, - 531 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 532 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 533 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, 534 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 535 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 536 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 537 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 538 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(2-1)], '', $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(2-2)] + $this->endAttributeStack[$stackPos-(2-2)], true); }, 539 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-2)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes, $this->startAttributeStack[$stackPos-(3-3)] + $this->endAttributeStack[$stackPos-(3-3)], true); }, 540 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = null; }, 541 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2671,7 +2678,7 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 543 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 544 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2680,7 +2687,7 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 546 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 547 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2689,85 +2696,85 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 549 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 550 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 551 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 552 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 553 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 554 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 555 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 556 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->semStack[$stackPos-(4-4)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); }, 557 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = null; }, 558 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 559 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 560 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 561 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 562 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 563 => function ($stackPos) { - $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; - }, - 564 => function ($stackPos) { - $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; - }, - 565 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 566 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; - }, - 567 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 568 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 569 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 570 => function ($stackPos) { + 562 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, - 571 => function ($stackPos) { + 563 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 564 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 565 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 566 => function ($stackPos) { + $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes), $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); $this->errorState = 2; + }, + 567 => function ($stackPos) { + $var = $this->semStack[$stackPos-(1-1)]->name; $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes) : $var; + }, + 568 => function ($stackPos) { $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, + 569 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 570 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 571 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, 572 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 573 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 574 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(3-2)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 575 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 576 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; @@ -2779,102 +2786,111 @@ class Php7 extends \PhpParser\ParserAbstract $this->semValue = $this->semStack[$stackPos-(1-1)]; }, 579 => function ($stackPos) { - $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; - }, - 580 => function ($stackPos) { - $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 581 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); - }, - 582 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, - 583 => function ($stackPos) { - /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, - 584 => function ($stackPos) { - $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; - }, - 585 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 586 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 587 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 588 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 589 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 590 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 591 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 592 => function ($stackPos) { - $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); - }, - 593 => function ($stackPos) { - $this->semValue = null; - }, - 594 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 595 => function ($stackPos) { - $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; - }, - 596 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(1-1)]); - }, - 597 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); - }, - 598 => function ($stackPos) { - $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 599 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); - }, - 600 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, - 601 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); - }, - 602 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 603 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 604 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 605 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); - }, - 606 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); - }, - 607 => function ($stackPos) { + 580 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(3-2)]; }, + 581 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 582 => function ($stackPos) { + $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); $this->errorState = 2; + }, + 583 => function ($stackPos) { + $this->semValue = new Expr\List_($this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 584 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; $end = count($this->semValue)-1; if ($this->semValue[$end] === null) array_pop($this->semValue); + }, + 585 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos]; + }, + 586 => function ($stackPos) { + /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ + }, + 587 => function ($stackPos) { + $this->semStack[$stackPos-(3-1)][] = $this->semStack[$stackPos-(3-3)]; $this->semValue = $this->semStack[$stackPos-(3-1)]; + }, + 588 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 589 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 590 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, true, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 591 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(1-1)], null, false, $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 592 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 593 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(4-4)], $this->semStack[$stackPos-(4-1)], true, $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 594 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(3-3)], $this->semStack[$stackPos-(3-1)], false, $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 595 => function ($stackPos) { + $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos-(2-2)], null, false, $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes, true); + }, + 596 => function ($stackPos) { + $this->semValue = null; + }, + 597 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 598 => function ($stackPos) { + $this->semStack[$stackPos-(2-1)][] = $this->semStack[$stackPos-(2-2)]; $this->semValue = $this->semStack[$stackPos-(2-1)]; + }, + 599 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(1-1)]); + }, + 600 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos-(2-1)], $this->semStack[$stackPos-(2-2)]); + }, + 601 => function ($stackPos) { + $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 602 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 603 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos-(1-1)]; + }, + 604 => function ($stackPos) { + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(4-1)], $this->semStack[$stackPos-(4-3)], $this->startAttributeStack[$stackPos-(4-1)] + $this->endAttributes); + }, + 605 => function ($stackPos) { + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 606 => function ($stackPos) { + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos-(3-1)], $this->semStack[$stackPos-(3-3)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, + 607 => function ($stackPos) { + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); + }, 608 => function ($stackPos) { - $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos-(3-2)], $this->startAttributeStack[$stackPos-(3-1)] + $this->endAttributes); }, 609 => function ($stackPos) { - $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos-(6-2)], $this->semStack[$stackPos-(6-4)], $this->startAttributeStack[$stackPos-(6-1)] + $this->endAttributes); }, 610 => function ($stackPos) { - $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos-(3-2)]; }, 611 => function ($stackPos) { + $this->semValue = new Scalar\String_($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 612 => function ($stackPos) { + $this->semValue = $this->parseNumString($this->semStack[$stackPos-(1-1)], $this->startAttributeStack[$stackPos-(1-1)] + $this->endAttributes); + }, + 613 => function ($stackPos) { + $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos-(2-2)], $this->startAttributeStack[$stackPos-(2-1)] + $this->endAttributes); + }, + 614 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos-(1-1)]; }, ]; diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php index c256e897..7c32e5a3 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php @@ -529,7 +529,7 @@ class Standard extends PrettyPrinterAbstract } protected function pExpr_StaticCall(Expr\StaticCall $node) { - return $this->pDereferenceLhs($node->class) . '::' + return $this->pStaticDereferenceLhs($node->class) . '::' . ($node->name instanceof Expr ? ($node->name instanceof Expr\Variable ? $this->p($node->name) @@ -606,7 +606,7 @@ class Standard extends PrettyPrinterAbstract } protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node) { - return $this->pDereferenceLhs($node->class) . '::' . $this->p($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::' . $this->pObjectProperty($node->name); } protected function pExpr_PropertyFetch(Expr\PropertyFetch $node) { @@ -618,7 +618,7 @@ class Standard extends PrettyPrinterAbstract } protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node) { - return $this->pDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); } protected function pExpr_ShellExec(Expr\ShellExec $node) { @@ -814,7 +814,9 @@ class Standard extends PrettyPrinterAbstract protected function pStmt_ClassConst(Stmt\ClassConst $node) { return $this->pAttrGroups($node->attrGroups) . $this->pModifiers($node->flags) - . 'const ' . $this->pCommaSeparated($node->consts) . ';'; + . 'const ' + . (null !== $node->type ? $this->p($node->type) . ' ' : '') + . $this->pCommaSeparated($node->consts) . ';'; } protected function pStmt_Function(Stmt\Function_ $node) { @@ -1067,6 +1069,14 @@ class Standard extends PrettyPrinterAbstract } } + protected function pStaticDereferenceLhs(Node $node) { + if (!$this->staticDereferenceLhsRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } + } + protected function pCallLhs(Node $node) { if (!$this->callLhsRequiresParens($node)) { return $this->p($node); @@ -1075,9 +1085,12 @@ class Standard extends PrettyPrinterAbstract } } - protected function pNewVariable(Node $node) { - // TODO: This is not fully accurate. - return $this->pDereferenceLhs($node); + protected function pNewVariable(Node $node): string { + if (!$this->newOperandRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } } /** diff --git a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index 6ed936fe..770d5009 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -21,6 +21,8 @@ abstract class PrettyPrinterAbstract const FIXUP_BRACED_NAME = 4; // Name operand that may require bracing const FIXUP_VAR_BRACED_NAME = 5; // Name operand that may require ${} bracing const FIXUP_ENCAPSED = 6; // Encapsed string part + const FIXUP_NEW = 7; // New/instanceof operand + const FIXUP_STATIC_DEREF_LHS = 8; // LHS of static dereferencing operation protected $precedenceMap = [ // [precedence, associativity] @@ -977,6 +979,19 @@ abstract class PrettyPrinterAbstract return '(' . $this->p($subNode) . ')'; } break; + case self::FIXUP_STATIC_DEREF_LHS: + if ($this->staticDereferenceLhsRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos) + ) { + return '(' . $this->p($subNode) . ')'; + } + break; + case self::FIXUP_NEW: + if ($this->newOperandRequiresParens($subNode) + && !$this->origTokens->haveParens($subStartPos, $subEndPos)) { + return '(' . $this->p($subNode) . ')'; + } + break; case self::FIXUP_BRACED_NAME: case self::FIXUP_VAR_BRACED_NAME: if ($subNode instanceof Expr @@ -1047,13 +1062,26 @@ abstract class PrettyPrinterAbstract } /** - * Determines whether the LHS of a dereferencing operation must be wrapped in parenthesis. + * Determines whether the LHS of an array/object operation must be wrapped in parentheses. * * @param Node $node LHS of dereferencing operation * * @return bool Whether parentheses are required */ protected function dereferenceLhsRequiresParens(Node $node) : bool { + // A constant can occur on the LHS of an array/object deref, but not a static deref. + return $this->staticDereferenceLhsRequiresParens($node) + && !$node instanceof Expr\ConstFetch; + } + + /** + * Determines whether the LHS of a static operation must be wrapped in parentheses. + * + * @param Node $node LHS of dereferencing operation + * + * @return bool Whether parentheses are required + */ + protected function staticDereferenceLhsRequiresParens(Node $node): bool { return !($node instanceof Expr\Variable || $node instanceof Node\Name || $node instanceof Expr\ArrayDimFetch @@ -1066,10 +1094,31 @@ abstract class PrettyPrinterAbstract || $node instanceof Expr\StaticCall || $node instanceof Expr\Array_ || $node instanceof Scalar\String_ - || $node instanceof Expr\ConstFetch || $node instanceof Expr\ClassConstFetch); } + /** + * Determines whether an expression used in "new" or "instanceof" requires parentheses. + * + * @param Node $node New or instanceof operand + * + * @return bool Whether parentheses are required + */ + protected function newOperandRequiresParens(Node $node): bool { + if ($node instanceof Node\Name || $node instanceof Expr\Variable) { + return false; + } + if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || + $node instanceof Expr\NullsafePropertyFetch + ) { + return $this->newOperandRequiresParens($node->var); + } + if ($node instanceof Expr\StaticPropertyFetch) { + return $this->newOperandRequiresParens($node->class); + } + return true; + } + /** * Print modifiers, including trailing whitespace. * @@ -1171,7 +1220,7 @@ abstract class PrettyPrinterAbstract Expr\PostDec::class => ['var' => self::FIXUP_PREC_LEFT], Expr\Instanceof_::class => [ 'expr' => self::FIXUP_PREC_LEFT, - 'class' => self::FIXUP_PREC_RIGHT, // TODO: FIXUP_NEW_VARIABLE + 'class' => self::FIXUP_NEW, ], Expr\Ternary::class => [ 'cond' => self::FIXUP_PREC_LEFT, @@ -1179,10 +1228,13 @@ abstract class PrettyPrinterAbstract ], Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], - Expr\StaticCall::class => ['class' => self::FIXUP_DEREF_LHS], + Expr\StaticCall::class => ['class' => self::FIXUP_STATIC_DEREF_LHS], Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\ClassConstFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\New_::class => ['class' => self::FIXUP_DEREF_LHS], // TODO: FIXUP_NEW_VARIABLE + Expr\ClassConstFetch::class => [ + 'class' => self::FIXUP_STATIC_DEREF_LHS, + 'name' => self::FIXUP_BRACED_NAME, + ], + Expr\New_::class => ['class' => self::FIXUP_NEW], Expr\MethodCall::class => [ 'var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME, @@ -1192,7 +1244,7 @@ abstract class PrettyPrinterAbstract 'name' => self::FIXUP_BRACED_NAME, ], Expr\StaticPropertyFetch::class => [ - 'class' => self::FIXUP_DEREF_LHS, + 'class' => self::FIXUP_STATIC_DEREF_LHS, 'name' => self::FIXUP_VAR_BRACED_NAME, ], Expr\PropertyFetch::class => [ @@ -1278,6 +1330,7 @@ abstract class PrettyPrinterAbstract 'Param->default' => $stripEquals, 'Stmt_Break->num' => $stripBoth, 'Stmt_Catch->var' => $stripLeft, + 'Stmt_ClassConst->type' => $stripRight, 'Stmt_ClassMethod->returnType' => $stripColon, 'Stmt_Class->extends' => ['left' => \T_EXTENDS], 'Stmt_Enum->scalarType' => $stripColon, @@ -1319,6 +1372,7 @@ abstract class PrettyPrinterAbstract 'Stmt_Break->num' => [\T_BREAK, false, ' ', null], 'Stmt_Catch->var' => [null, false, ' ', null], 'Stmt_ClassMethod->returnType' => [')', false, ' : ', null], + 'Stmt_ClassConst->type' => [\T_CONST, false, ' ', null], 'Stmt_Class->extends' => [null, false, ' extends ', null], 'Stmt_Enum->scalarType' => [null, false, ' : ', null], 'Stmt_EnumCase->expr' => [null, false, ' = ', null], @@ -1508,6 +1562,7 @@ abstract class PrettyPrinterAbstract 'Stmt_ClassMethod->flags' => \T_FUNCTION, 'Stmt_Class->flags' => \T_CLASS, 'Stmt_Property->flags' => \T_VARIABLE, + 'Expr_PrintableNewAnonClass->flags' => \T_CLASS, 'Param->flags' => \T_VARIABLE, //'Stmt_TraitUseAdaptation_Alias->newModifier' => 0, // TODO ]; diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php index 892ee0f9..4909ab73 100644 --- a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php +++ b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php @@ -181,6 +181,7 @@ final class ContextFactory $currentNamespace = $this->parseNamespace($tokens); break; case T_CLASS: + case T_TRAIT: // Fast-forward the iterator through the class so that any // T_USE tokens found within are skipped - these are not // valid namespace use statements so should be ignored. diff --git a/vendor/phpstan/phpdoc-parser/README.md b/vendor/phpstan/phpdoc-parser/README.md index 67312fd9..3b321b22 100644 --- a/vendor/phpstan/phpdoc-parser/README.md +++ b/vendor/phpstan/phpdoc-parser/README.md @@ -15,6 +15,8 @@ For the complete list of supported PHPDoc features check out PHPStan documentati * [PHPDoc Types](https://phpstan.org/writing-php-code/phpdoc-types) (list of PHPDoc types) * [phpdoc-parser API Reference](https://phpstan.github.io/phpdoc-parser/namespace-PHPStan.PhpDocParser.html) with all the AST node types etc. +This parser also supports parsing [Doctrine Annotations](https://github.com/doctrine/annotations). The AST nodes live in the [PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine namespace](https://phpstan.github.io/phpdoc-parser/namespace-PHPStan.PhpDocParser.Ast.PhpDoc.Doctrine.html). The support needs to be turned on by setting `bool $parseDoctrineAnnotations` to `true` in `Lexer` and `PhpDocParser` class constructors. + ## Installation ``` diff --git a/vendor/phpstan/phpdoc-parser/composer.json b/vendor/phpstan/phpdoc-parser/composer.json index 30b879b7..f1c648e5 100644 --- a/vendor/phpstan/phpdoc-parser/composer.json +++ b/vendor/phpstan/phpdoc-parser/composer.json @@ -6,6 +6,7 @@ "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php new file mode 100644 index 00000000..a503937b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php @@ -0,0 +1,42 @@ +value = $value; + } + + public function __toString(): string + { + return self::escape($this->value); + } + + public static function unescape(string $value): string + { + // from https://github.com/doctrine/annotations/blob/a9ec7af212302a75d1f92fa65d3abfbd16245a2a/lib/Doctrine/Common/Annotations/DocLexer.php#L103-L107 + return str_replace('""', '"', substr($value, 1, strlen($value) - 2)); + } + + private static function escape(string $value): string + { + // from https://github.com/phpstan/phpdoc-parser/issues/205#issuecomment-1662323656 + return sprintf('"%s"', str_replace('"', '""', $value)); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php new file mode 100644 index 00000000..3a93f5aa --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php @@ -0,0 +1,35 @@ + */ + public $arguments; + + /** + * @param list $arguments + */ + public function __construct(string $name, array $arguments) + { + $this->name = $name; + $this->arguments = $arguments; + } + + public function __toString(): string + { + $arguments = implode(', ', $this->arguments); + return $this->name . '(' . $arguments . ')'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php new file mode 100644 index 00000000..f30812cf --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php @@ -0,0 +1,43 @@ +key = $key; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->key === null) { + return (string) $this->value; + } + + return $this->key . '=' . $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php new file mode 100644 index 00000000..e740567d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php @@ -0,0 +1,32 @@ + */ + public $items; + + /** + * @param list $items + */ + public function __construct(array $items) + { + $this->items = $items; + } + + public function __toString(): string + { + $items = implode(', ', $this->items); + + return '{' . $items . '}'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php new file mode 100644 index 00000000..d2dbf2b6 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php @@ -0,0 +1,47 @@ +key = $key; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->key === null) { + return (string) $this->value; + } + + return $this->key . '=' . $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php new file mode 100644 index 00000000..84f7b18b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php @@ -0,0 +1,36 @@ +annotation = $annotation; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->annotation} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php index 856cc3f1..d20746fc 100644 --- a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php @@ -3,6 +3,7 @@ namespace PHPStan\PhpDocParser\Ast\PhpDoc; use PHPStan\PhpDocParser\Ast\NodeAttributes; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineTagValueNode; use function trim; class PhpDocTagNode implements PhpDocChildNode @@ -25,6 +26,10 @@ class PhpDocTagNode implements PhpDocChildNode public function __toString(): string { + if ($this->value instanceof DoctrineTagValueNode) { + return (string) $this->value; + } + return trim("{$this->name} {$this->value}"); } diff --git a/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php index ccae6bef..32539faf 100644 --- a/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php +++ b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php @@ -30,23 +30,25 @@ class Lexer public const TOKEN_OPEN_PHPDOC = 15; public const TOKEN_CLOSE_PHPDOC = 16; public const TOKEN_PHPDOC_TAG = 17; - public const TOKEN_FLOAT = 18; - public const TOKEN_INTEGER = 19; - public const TOKEN_SINGLE_QUOTED_STRING = 20; - public const TOKEN_DOUBLE_QUOTED_STRING = 21; - public const TOKEN_IDENTIFIER = 22; - public const TOKEN_THIS_VARIABLE = 23; - public const TOKEN_VARIABLE = 24; - public const TOKEN_HORIZONTAL_WS = 25; - public const TOKEN_PHPDOC_EOL = 26; - public const TOKEN_OTHER = 27; - public const TOKEN_END = 28; - public const TOKEN_COLON = 29; - public const TOKEN_WILDCARD = 30; - public const TOKEN_OPEN_CURLY_BRACKET = 31; - public const TOKEN_CLOSE_CURLY_BRACKET = 32; - public const TOKEN_NEGATED = 33; - public const TOKEN_ARROW = 34; + public const TOKEN_DOCTRINE_TAG = 18; + public const TOKEN_FLOAT = 19; + public const TOKEN_INTEGER = 20; + public const TOKEN_SINGLE_QUOTED_STRING = 21; + public const TOKEN_DOUBLE_QUOTED_STRING = 22; + public const TOKEN_DOCTRINE_ANNOTATION_STRING = 23; + public const TOKEN_IDENTIFIER = 24; + public const TOKEN_THIS_VARIABLE = 25; + public const TOKEN_VARIABLE = 26; + public const TOKEN_HORIZONTAL_WS = 27; + public const TOKEN_PHPDOC_EOL = 28; + public const TOKEN_OTHER = 29; + public const TOKEN_END = 30; + public const TOKEN_COLON = 31; + public const TOKEN_WILDCARD = 32; + public const TOKEN_OPEN_CURLY_BRACKET = 33; + public const TOKEN_CLOSE_CURLY_BRACKET = 34; + public const TOKEN_NEGATED = 35; + public const TOKEN_ARROW = 36; public const TOKEN_LABELS = [ self::TOKEN_REFERENCE => '\'&\'', @@ -72,11 +74,13 @@ class Lexer self::TOKEN_OPEN_PHPDOC => '\'/**\'', self::TOKEN_CLOSE_PHPDOC => '\'*/\'', self::TOKEN_PHPDOC_TAG => 'TOKEN_PHPDOC_TAG', + self::TOKEN_DOCTRINE_TAG => 'TOKEN_DOCTRINE_TAG', self::TOKEN_PHPDOC_EOL => 'TOKEN_PHPDOC_EOL', self::TOKEN_FLOAT => 'TOKEN_FLOAT', self::TOKEN_INTEGER => 'TOKEN_INTEGER', self::TOKEN_SINGLE_QUOTED_STRING => 'TOKEN_SINGLE_QUOTED_STRING', self::TOKEN_DOUBLE_QUOTED_STRING => 'TOKEN_DOUBLE_QUOTED_STRING', + self::TOKEN_DOCTRINE_ANNOTATION_STRING => 'TOKEN_DOCTRINE_ANNOTATION_STRING', self::TOKEN_IDENTIFIER => 'type', self::TOKEN_THIS_VARIABLE => '\'$this\'', self::TOKEN_VARIABLE => 'variable', @@ -90,9 +94,17 @@ class Lexer public const TYPE_OFFSET = 1; public const LINE_OFFSET = 2; + /** @var bool */ + private $parseDoctrineAnnotations; + /** @var string|null */ private $regexp; + public function __construct(bool $parseDoctrineAnnotations = false) + { + $this->parseDoctrineAnnotations = $parseDoctrineAnnotations; + } + /** * @return list */ @@ -160,17 +172,22 @@ class Lexer self::TOKEN_PHPDOC_TAG => '@(?:[a-z][a-z0-9-\\\\]+:)?[a-z][a-z0-9-\\\\]*+', self::TOKEN_PHPDOC_EOL => '\\r?+\\n[\\x09\\x20]*+(?:\\*(?!/)\\x20?+)?', - self::TOKEN_FLOAT => '(?:-?[0-9]++(_[0-9]++)*\\.[0-9]*(_[0-9]++)*+(?:e-?[0-9]++(_[0-9]++)*)?)|(?:-?[0-9]*+(_[0-9]++)*\\.[0-9]++(_[0-9]++)*(?:e-?[0-9]++(_[0-9]++)*)?)|(?:-?[0-9]++(_[0-9]++)*e-?[0-9]++(_[0-9]++)*)', - self::TOKEN_INTEGER => '-?(?:(?:0b[0-1]++(_[0-1]++)*)|(?:0o[0-7]++(_[0-7]++)*)|(?:0x[0-9a-f]++(_[0-9a-f]++)*)|(?:[0-9]++(_[0-9]++)*))', + self::TOKEN_FLOAT => '[+\-]?(?:(?:[0-9]++(_[0-9]++)*\\.[0-9]*+(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]*+(_[0-9]++)*\\.[0-9]++(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]++(_[0-9]++)*e[+\-]?[0-9]++(_[0-9]++)*))', + self::TOKEN_INTEGER => '[+\-]?(?:(?:0b[0-1]++(_[0-1]++)*)|(?:0o[0-7]++(_[0-7]++)*)|(?:0x[0-9a-f]++(_[0-9a-f]++)*)|(?:[0-9]++(_[0-9]++)*))', self::TOKEN_SINGLE_QUOTED_STRING => '\'(?:\\\\[^\\r\\n]|[^\'\\r\\n\\\\])*+\'', self::TOKEN_DOUBLE_QUOTED_STRING => '"(?:\\\\[^\\r\\n]|[^"\\r\\n\\\\])*+"', self::TOKEN_WILDCARD => '\\*', - - // anything but TOKEN_CLOSE_PHPDOC or TOKEN_HORIZONTAL_WS or TOKEN_EOL - self::TOKEN_OTHER => '(?:(?!\\*/)[^\\s])++', ]; + if ($this->parseDoctrineAnnotations) { + $patterns[self::TOKEN_DOCTRINE_TAG] = '@[a-z_\\\\][a-z0-9_\:\\\\]*[a-z_][a-z0-9_]*'; + $patterns[self::TOKEN_DOCTRINE_ANNOTATION_STRING] = '"(?:""|[^"])*+"'; + } + + // anything but TOKEN_CLOSE_PHPDOC or TOKEN_HORIZONTAL_WS or TOKEN_EOL + $patterns[self::TOKEN_OTHER] = '(?:(?!\\*/)[^\\s])++'; + foreach ($patterns as $type => &$pattern) { $pattern = '(?:' . $pattern . ')(*MARK:' . $type . ')'; } diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php index b6db8a2c..f6a7306e 100644 --- a/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php +++ b/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php @@ -23,6 +23,9 @@ class ConstExprParser /** @var bool */ private $useIndexAttributes; + /** @var bool */ + private $parseDoctrineStrings; + /** * @param array{lines?: bool, indexes?: bool} $usedAttributes */ @@ -36,6 +39,24 @@ class ConstExprParser $this->quoteAwareConstExprString = $quoteAwareConstExprString; $this->useLinesAttributes = $usedAttributes['lines'] ?? false; $this->useIndexAttributes = $usedAttributes['indexes'] ?? false; + $this->parseDoctrineStrings = false; + } + + /** + * @internal + */ + public function toDoctrine(): self + { + $self = new self( + $this->unescapeStrings, + $this->quoteAwareConstExprString, + [ + 'lines' => $this->useLinesAttributes, + 'indexes' => $this->useIndexAttributes, + ] + ); + $self->parseDoctrineStrings = true; + return $self; } public function parse(TokenIterator $tokens, bool $trimStrings = false): Ast\ConstExpr\ConstExprNode @@ -66,7 +87,41 @@ class ConstExprParser ); } + if ($this->parseDoctrineStrings && $tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($value)), + $startLine, + $startIndex + ); + } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING, Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + if ($this->parseDoctrineStrings) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_DOUBLE_QUOTED_STRING, + null, + $tokens->currentTokenLine() + ); + } + + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + $this->parseDoctrineString($value, $tokens), + $startLine, + $startIndex + ); + } $value = $tokens->currentTokenValue(); $type = $tokens->currentTokenType(); if ($trimStrings) { @@ -214,6 +269,23 @@ class ConstExprParser } + /** + * This method is supposed to be called with TokenIterator after reading TOKEN_DOUBLE_QUOTED_STRING and shifting + * to the next token. + */ + public function parseDoctrineString(string $text, TokenIterator $tokens): Ast\ConstExpr\DoctrineConstExprStringNode + { + // Because of how Lexer works, a valid Doctrine string + // can consist of a sequence of TOKEN_DOUBLE_QUOTED_STRING and TOKEN_DOCTRINE_ANNOTATION_STRING + while ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING, Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $text .= $tokens->currentTokenValue(); + $tokens->next(); + } + + return new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)); + } + + private function parseArrayItem(TokenIterator $tokens): Ast\ConstExpr\ConstExprArrayItemNode { $startLine = $tokens->currentTokenLine(); @@ -245,22 +317,14 @@ class ConstExprParser */ private function enrichWithAttributes(TokenIterator $tokens, Ast\ConstExpr\ConstExprNode $node, int $startLine, int $startIndex): Ast\ConstExpr\ConstExprNode { - $endLine = $tokens->currentTokenLine(); - $endIndex = $tokens->currentTokenIndex(); if ($this->useLinesAttributes) { $node->setAttribute(Ast\Attribute::START_LINE, $startLine); - $node->setAttribute(Ast\Attribute::END_LINE, $endLine); + $node->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); } if ($this->useIndexAttributes) { - $tokensArray = $tokens->getTokens(); - $endIndex--; - if ($tokensArray[$endIndex][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { - $endIndex--; - } - $node->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $node->setAttribute(Ast\Attribute::END_INDEX, $endIndex); + $node->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); } return $node; diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php index a6401b65..15a2aa5c 100644 --- a/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php +++ b/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php @@ -2,15 +2,25 @@ namespace PHPStan\PhpDocParser\Parser; +use LogicException; use PHPStan\PhpDocParser\Ast; +use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprIntegerNode; +use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprStringNode; +use PHPStan\PhpDocParser\Ast\ConstExpr\ConstFetchNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\PhpDocParser\Lexer\Lexer; use PHPStan\ShouldNotHappenException; use function array_key_exists; use function array_values; use function count; +use function rtrim; +use function str_replace; use function trim; +/** + * @phpstan-import-type ValueType from Doctrine\DoctrineArgument as DoctrineValueType + */ class PhpDocParser { @@ -25,18 +35,27 @@ class PhpDocParser /** @var ConstExprParser */ private $constantExprParser; + /** @var ConstExprParser */ + private $doctrineConstantExprParser; + /** @var bool */ private $requireWhitespaceBeforeDescription; /** @var bool */ private $preserveTypeAliasesWithInvalidTypes; + /** @var bool */ + private $parseDoctrineAnnotations; + /** @var bool */ private $useLinesAttributes; /** @var bool */ private $useIndexAttributes; + /** @var bool */ + private $textBetweenTagsBelongsToDescription; + /** * @param array{lines?: bool, indexes?: bool} $usedAttributes */ @@ -45,15 +64,20 @@ class PhpDocParser ConstExprParser $constantExprParser, bool $requireWhitespaceBeforeDescription = false, bool $preserveTypeAliasesWithInvalidTypes = false, - array $usedAttributes = [] + array $usedAttributes = [], + bool $parseDoctrineAnnotations = false, + bool $textBetweenTagsBelongsToDescription = false ) { $this->typeParser = $typeParser; $this->constantExprParser = $constantExprParser; + $this->doctrineConstantExprParser = $constantExprParser->toDoctrine(); $this->requireWhitespaceBeforeDescription = $requireWhitespaceBeforeDescription; $this->preserveTypeAliasesWithInvalidTypes = $preserveTypeAliasesWithInvalidTypes; + $this->parseDoctrineAnnotations = $parseDoctrineAnnotations; $this->useLinesAttributes = $usedAttributes['lines'] ?? false; $this->useIndexAttributes = $usedAttributes['indexes'] ?? false; + $this->textBetweenTagsBelongsToDescription = $textBetweenTagsBelongsToDescription; } @@ -64,10 +88,44 @@ class PhpDocParser $children = []; - if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { - $children[] = $this->parseChild($tokens); - while ($tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL) && !$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + if ($this->parseDoctrineAnnotations) { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + while (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + if ( + $lastChild instanceof Ast\PhpDoc\PhpDocTagNode + && ( + $lastChild->value instanceof Doctrine\DoctrineTagValueNode + || $lastChild->value instanceof Ast\PhpDoc\GenericTagValueNode + ) + ) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + break; + } + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + continue; + } + + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + break; + } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + break; + } + + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + } + } + } else { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { $children[] = $this->parseChild($tokens); + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL) && !$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + $children[] = $this->parseChild($tokens); + } } } @@ -105,6 +163,7 @@ class PhpDocParser } + /** @phpstan-impure */ private function parseChild(TokenIterator $tokens): Ast\PhpDoc\PhpDocChildNode { if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { @@ -113,6 +172,26 @@ class PhpDocParser return $this->enrichWithAttributes($tokens, $this->parseTag($tokens), $startLine, $startIndex); } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_TAG)) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $tag = $tokens->currentTokenValue(); + $tokens->next(); + + $tagStartLine = $tokens->currentTokenLine(); + $tagStartIndex = $tokens->currentTokenIndex(); + + return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocTagNode( + $tag, + $this->enrichWithAttributes( + $tokens, + $this->parseDoctrineTagValue($tokens, $tag), + $tagStartLine, + $tagStartIndex + ) + ), $startLine, $startIndex); + } + $startLine = $tokens->currentTokenLine(); $startIndex = $tokens->currentTokenIndex(); $text = $this->parseText($tokens); @@ -127,23 +206,14 @@ class PhpDocParser */ private function enrichWithAttributes(TokenIterator $tokens, Ast\Node $tag, int $startLine, int $startIndex): Ast\Node { - $endLine = $tokens->currentTokenLine(); - $endIndex = $tokens->currentTokenIndex(); - if ($this->useLinesAttributes) { $tag->setAttribute(Ast\Attribute::START_LINE, $startLine); - $tag->setAttribute(Ast\Attribute::END_LINE, $endLine); + $tag->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); } if ($this->useIndexAttributes) { - $tokensArray = $tokens->getTokens(); - $endIndex--; - if ($tokensArray[$endIndex][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { - $endIndex--; - } - $tag->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $tag->setAttribute(Ast\Attribute::END_INDEX, $endIndex); + $tag->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); } return $tag; @@ -154,29 +224,144 @@ class PhpDocParser { $text = ''; - while (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { - $text .= $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END); + $endTokens = [Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + if ($this->textBetweenTagsBelongsToDescription) { + $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + } + $savepoint = false; + + // if the next token is EOL, everything below is skipped and empty string is returned + while ($this->textBetweenTagsBelongsToDescription || !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); + $text .= $tmpText; + + // stop if we're not at EOL - meaning it's the end of PHPDoc if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { break; } + if ($this->textBetweenTagsBelongsToDescription) { + if (!$savepoint) { + $tokens->pushSavePoint(); + $savepoint = true; + } elseif ($tmpText !== '') { + $tokens->dropSavePoint(); + $tokens->pushSavePoint(); + } + } + $tokens->pushSavePoint(); $tokens->next(); - if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END)) { + // if we're at EOL, check what's next + // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { $tokens->rollback(); break; } + // otherwise if the next is text, continue building the description string + $tokens->dropSavePoint(); - $text .= "\n"; + $text .= $tokens->getDetectedNewline() ?? "\n"; + } + + if ($savepoint) { + $tokens->rollback(); + $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); } return new Ast\PhpDoc\PhpDocTextNode(trim($text, " \t")); } + private function parseOptionalDescriptionAfterDoctrineTag(TokenIterator $tokens): string + { + $text = ''; + + $endTokens = [Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + if ($this->textBetweenTagsBelongsToDescription) { + $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + } + + $savepoint = false; + + // if the next token is EOL, everything below is skipped and empty string is returned + while ($this->textBetweenTagsBelongsToDescription || !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); + $text .= $tmpText; + + // stop if we're not at EOL - meaning it's the end of PHPDoc + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + if (!$tokens->isPrecededByHorizontalWhitespace()) { + return trim($text . $this->parseText($tokens)->text, " \t"); + } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { + $tokens->pushSavePoint(); + $child = $this->parseChild($tokens); + if ($child instanceof Ast\PhpDoc\PhpDocTagNode) { + if ( + $child->value instanceof Ast\PhpDoc\GenericTagValueNode + || $child->value instanceof Doctrine\DoctrineTagValueNode + ) { + $tokens->rollback(); + break; + } + if ($child->value instanceof Ast\PhpDoc\InvalidTagValueNode) { + $tokens->rollback(); + $tokens->pushSavePoint(); + $tokens->next(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tokens->rollback(); + break; + } + $tokens->rollback(); + return trim($text . $this->parseText($tokens)->text, " \t"); + } + } + + $tokens->rollback(); + return trim($text . $this->parseText($tokens)->text, " \t"); + } + break; + } + + if ($this->textBetweenTagsBelongsToDescription) { + if (!$savepoint) { + $tokens->pushSavePoint(); + $savepoint = true; + } elseif ($tmpText !== '') { + $tokens->dropSavePoint(); + $tokens->pushSavePoint(); + } + } + + $tokens->pushSavePoint(); + $tokens->next(); + + // if we're at EOL, check what's next + // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { + $tokens->rollback(); + break; + } + + // otherwise if the next is text, continue building the description string + + $tokens->dropSavePoint(); + $text .= $tokens->getDetectedNewline() ?? "\n"; + } + + if ($savepoint) { + $tokens->rollback(); + $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); + } + + return trim($text, " \t"); + } + + public function parseTag(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagNode { $tag = $tokens->currentTokenValue(); @@ -308,7 +493,17 @@ class PhpDocParser break; default: + if ($this->parseDoctrineAnnotations) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tagValue = $this->parseDoctrineTagValue($tokens, $tag); + } else { + $tagValue = new Ast\PhpDoc\GenericTagValueNode($this->parseOptionalDescriptionAfterDoctrineTag($tokens)); + } + break; + } + $tagValue = new Ast\PhpDoc\GenericTagValueNode($this->parseOptionalDescription($tokens)); + break; } @@ -323,6 +518,308 @@ class PhpDocParser } + private function parseDoctrineTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + return new Doctrine\DoctrineTagValueNode( + $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineAnnotation($tag, $this->parseDoctrineArguments($tokens, false)), + $startLine, + $startIndex + ), + $this->parseOptionalDescriptionAfterDoctrineTag($tokens) + ); + } + + + /** + * @return list + */ + private function parseDoctrineArguments(TokenIterator $tokens, bool $deep): array + { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + return []; + } + + if (!$deep) { + $tokens->addEndOfLineToSkippedTokens(); + } + + $arguments = []; + + try { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); + + do { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { + break; + } + $arguments[] = $this->parseDoctrineArgument($tokens); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + } finally { + if (!$deep) { + $tokens->removeEndOfLineFromSkippedTokens(); + } + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + + return $arguments; + } + + + private function parseDoctrineArgument(TokenIterator $tokens): Doctrine\DoctrineArgument + { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + try { + $tokens->pushSavePoint(); + $currentValue = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $key = $this->enrichWithAttributes( + $tokens, + new IdentifierTypeNode($currentValue), + $startLine, + $startIndex + ); + $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); + + $value = $this->parseDoctrineArgumentValue($tokens); + + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument($key, $value), + $startLine, + $startIndex + ); + } catch (ParserException $e) { + $tokens->rollback(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + } + + + /** + * @return DoctrineValueType + */ + private function parseDoctrineArgumentValue(TokenIterator $tokens) + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG)) { + $name = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineAnnotation($name, $this->parseDoctrineArguments($tokens, true)), + $startLine, + $startIndex + ); + } + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET)) { + $items = []; + do { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { + break; + } + $items[] = $this->parseDoctrineArrayItem($tokens); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArray($items), + $startLine, + $startIndex + ); + } + + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $identifier = $this->enrichWithAttributes( + $tokens, + new Ast\Type\IdentifierTypeNode($currentTokenValue), + $startLine, + $startIndex + ); + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $tokens->dropSavePoint(); + return $identifier; + } + + $tokens->rollback(); // because of ConstFetchNode + } else { + $tokens->dropSavePoint(); // because of ConstFetchNode + } + + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); + + try { + $constExpr = $this->doctrineConstantExprParser->parse($tokens, true); + if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + return $constExpr; + } catch (LogicException $e) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + } + + + private function parseDoctrineArrayItem(TokenIterator $tokens): Doctrine\DoctrineArrayItem + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + try { + $tokens->pushSavePoint(); + + $key = $this->parseDoctrineArrayKey($tokens); + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL)) { + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_COLON)) { + $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); // will throw exception + } + } + + $value = $this->parseDoctrineArgumentValue($tokens); + + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArrayItem($key, $value), + $startLine, + $startIndex + ); + } catch (ParserException $e) { + $tokens->rollback(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArrayItem(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + } + + + /** + * @return ConstExprIntegerNode|ConstExprStringNode|IdentifierTypeNode|ConstFetchNode + */ + private function parseDoctrineArrayKey(TokenIterator $tokens) + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { + $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $tokens->currentTokenValue())); + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $key = new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($tokens->currentTokenValue())); + + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + $key = $this->doctrineConstantExprParser->parseDoctrineString($value, $tokens); + + } else { + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $tokens->dropSavePoint(); + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_IDENTIFIER, + null, + $tokens->currentTokenLine() + ); + } + + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new IdentifierTypeNode($currentTokenValue), + $startLine, + $startIndex + ); + } + + $tokens->rollback(); + $constExpr = $this->doctrineConstantExprParser->parse($tokens, true); + if (!$constExpr instanceof Ast\ConstExpr\ConstFetchNode) { + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_IDENTIFIER, + null, + $tokens->currentTokenLine() + ); + } + + return $constExpr; + } + + return $this->enrichWithAttributes($tokens, $key, $startLine, $startIndex); + } + + /** * @return Ast\PhpDoc\ParamTagValueNode|Ast\PhpDoc\TypelessParamTagValueNode */ @@ -630,15 +1127,13 @@ class PhpDocParser { if ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) { $parameter = '$this'; - $requirePropertyOrMethod = true; $tokens->next(); } else { $parameter = $tokens->currentTokenValue(); - $requirePropertyOrMethod = false; $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); } - if ($requirePropertyOrMethod || $tokens->isCurrentTokenType(Lexer::TOKEN_ARROW)) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_ARROW)) { $tokens->consumeTokenType(Lexer::TOKEN_ARROW); $propertyOrMethod = $tokens->currentTokenValue(); diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php b/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php index 4348ab79..9be7593d 100644 --- a/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php +++ b/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php @@ -9,6 +9,7 @@ use function assert; use function count; use function in_array; use function strlen; +use function substr; class TokenIterator { @@ -22,6 +23,12 @@ class TokenIterator /** @var int[] */ private $savePoints = []; + /** @var list */ + private $skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS]; + + /** @var string|null */ + private $newline = null; + /** * @param list $tokens */ @@ -30,11 +37,7 @@ class TokenIterator $this->tokens = $tokens; $this->index = $index; - if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] !== Lexer::TOKEN_HORIZONTAL_WS) { - return; - } - - $this->index++; + $this->skipIrrelevantTokens(); } @@ -103,6 +106,21 @@ class TokenIterator } + public function endIndexOfLastRelevantToken(): int + { + $endIndex = $this->currentTokenIndex(); + $endIndex--; + while (in_array($this->tokens[$endIndex][Lexer::TYPE_OFFSET], $this->skippedTokenTypes, true)) { + if (!isset($this->tokens[$endIndex - 1])) { + break; + } + $endIndex--; + } + + return $endIndex; + } + + public function isCurrentTokenValue(string $tokenValue): bool { return $this->tokens[$this->index][Lexer::VALUE_OFFSET] === $tokenValue; @@ -130,13 +148,14 @@ class TokenIterator $this->throwError($tokenType); } - $this->index++; - - if (($this->tokens[$this->index][Lexer::TYPE_OFFSET] ?? -1) !== Lexer::TOKEN_HORIZONTAL_WS) { - return; + if ($tokenType === Lexer::TOKEN_PHPDOC_EOL) { + if ($this->newline === null) { + $this->detectNewline(); + } } $this->index++; + $this->skipIrrelevantTokens(); } @@ -150,12 +169,7 @@ class TokenIterator } $this->index++; - - if (($this->tokens[$this->index][Lexer::TYPE_OFFSET] ?? -1) !== Lexer::TOKEN_HORIZONTAL_WS) { - return; - } - - $this->index++; + $this->skipIrrelevantTokens(); } @@ -167,10 +181,7 @@ class TokenIterator } $this->index++; - - if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { - $this->index++; - } + $this->skipIrrelevantTokens(); return true; } @@ -183,16 +194,30 @@ class TokenIterator return false; } - $this->index++; - - if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { - $this->index++; + if ($tokenType === Lexer::TOKEN_PHPDOC_EOL) { + if ($this->newline === null) { + $this->detectNewline(); + } } + $this->index++; + $this->skipIrrelevantTokens(); + return true; } + private function detectNewline(): void + { + $value = $this->currentTokenValue(); + if (substr($value, 0, 2) === "\r\n") { + $this->newline = "\r\n"; + } elseif (substr($value, 0, 1) === "\n") { + $this->newline = "\n"; + } + } + + public function getSkippedHorizontalWhiteSpaceIfAny(): string { if ($this->index > 0 && $this->tokens[$this->index - 1][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { @@ -217,12 +242,34 @@ class TokenIterator public function next(): void { $this->index++; + $this->skipIrrelevantTokens(); + } - if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] !== Lexer::TOKEN_HORIZONTAL_WS) { + + private function skipIrrelevantTokens(): void + { + if (!isset($this->tokens[$this->index])) { return; } - $this->index++; + while (in_array($this->tokens[$this->index][Lexer::TYPE_OFFSET], $this->skippedTokenTypes, true)) { + if (!isset($this->tokens[$this->index + 1])) { + break; + } + $this->index++; + } + } + + + public function addEndOfLineToSkippedTokens(): void + { + $this->skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS, Lexer::TOKEN_PHPDOC_EOL]; + } + + + public function removeEndOfLineFromSkippedTokens(): void + { + $this->skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS]; } /** @phpstan-impure */ @@ -319,6 +366,11 @@ class TokenIterator return false; } + public function getDetectedNewline(): ?string + { + return $this->newline; + } + /** * Whether the given position is immediately surrounded by parenthesis. */ diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php index 4b429809..d0b1fdea 100644 --- a/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php +++ b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php @@ -70,23 +70,14 @@ class TypeParser */ public function enrichWithAttributes(TokenIterator $tokens, Ast\Node $type, int $startLine, int $startIndex): Ast\Node { - $endLine = $tokens->currentTokenLine(); - $endIndex = $tokens->currentTokenIndex(); - if ($this->useLinesAttributes) { $type->setAttribute(Ast\Attribute::START_LINE, $startLine); - $type->setAttribute(Ast\Attribute::END_LINE, $endLine); + $type->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); } if ($this->useIndexAttributes) { - $tokensArray = $tokens->getTokens(); - $endIndex--; - if ($tokensArray[$endIndex][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { - $endIndex--; - } - $type->setAttribute(Ast\Attribute::START_INDEX, $startIndex); - $type->setAttribute(Ast\Attribute::END_INDEX, $endIndex); + $type->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); } return $type; @@ -205,28 +196,45 @@ class TypeParser $tokens->dropSavePoint(); // because of ConstFetchNode } - $exception = new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_IDENTIFIER, - null, - $tokens->currentTokenLine() - ); + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); if ($this->constExprParser === null) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } try { $constExpr = $this->constExprParser->parse($tokens, true); if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } return $this->enrichWithAttributes($tokens, new Ast\Type\ConstTypeNode($constExpr), $startLine, $startIndex); } catch (LogicException $e) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } } @@ -609,23 +617,33 @@ class TypeParser } } - $exception = new ParserException( - $tokens->currentTokenValue(), - $tokens->currentTokenType(), - $tokens->currentTokenOffset(), - Lexer::TOKEN_IDENTIFIER, - null, - $tokens->currentTokenLine() - ); + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); if ($this->constExprParser === null) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } try { $constExpr = $this->constExprParser->parse($tokens, true); if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } $type = new Ast\Type\ConstTypeNode($constExpr); @@ -640,7 +658,14 @@ class TypeParser return $type; } catch (LogicException $e) { - throw $exception; + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); } } diff --git a/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php index b65d83aa..d7feaf91 100644 --- a/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php +++ b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php @@ -10,6 +10,11 @@ use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\AssertTagMethodValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\AssertTagPropertyValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\AssertTagValueNode; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineAnnotation; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineArgument; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineArray; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineArrayItem; +use PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine\DoctrineTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\ExtendsTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\ImplementsTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\MethodTagValueNode; @@ -95,6 +100,8 @@ final class Printer GenericTypeNode::class . '->genericTypes' => ', ', ConstExprArrayNode::class . '->items' => ', ', MethodTagValueNode::class . '->parameters' => ', ', + DoctrineArray::class . '->items' => ', ', + DoctrineAnnotation::class . '->arguments' => ', ', ]; /** @@ -106,6 +113,8 @@ final class Printer CallableTypeNode::class . '->parameters' => ['(', '', ''], ArrayShapeNode::class . '->items' => ['{', '', ''], ObjectShapeNode::class . '->items' => ['{', '', ''], + DoctrineArray::class . '->items' => ['{', '', ''], + DoctrineAnnotation::class . '->arguments' => ['(', '', ''], ]; /** @var array>> */ @@ -186,6 +195,10 @@ final class Printer return $node->text; } if ($node instanceof PhpDocTagNode) { + if ($node->value instanceof DoctrineTagValueNode) { + return $this->print($node->value); + } + return trim(sprintf('%s %s', $node->name, $this->print($node->value))); } if ($node instanceof PhpDocTagValueNode) { @@ -211,6 +224,18 @@ final class Printer $isOptional = $node->isOptional ? '=' : ''; return trim("{$type}{$isReference}{$isVariadic}{$node->parameterName}") . $isOptional; } + if ($node instanceof DoctrineAnnotation) { + return (string) $node; + } + if ($node instanceof DoctrineArgument) { + return (string) $node; + } + if ($node instanceof DoctrineArray) { + return (string) $node; + } + if ($node instanceof DoctrineArrayItem) { + return (string) $node; + } throw new LogicException(sprintf('Unknown node type %s', get_class($node))); } @@ -491,7 +516,7 @@ final class Printer [$isMultiline, $beforeAsteriskIndent, $afterAsteriskIndent] = $this->isMultiline($tokenIndex, $originalNodes, $originalTokens); if ($insertStr === "\n * ") { - $insertStr = sprintf("\n%s*%s", $beforeAsteriskIndent, $afterAsteriskIndent); + $insertStr = sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); } foreach ($diff as $i => $diffElem) { @@ -524,7 +549,7 @@ final class Printer } if ($insertNewline) { - $result .= $insertStr . sprintf("\n%s*%s", $beforeAsteriskIndent, $afterAsteriskIndent); + $result .= $insertStr . sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); } else { $result .= $insertStr; } @@ -568,7 +593,7 @@ final class Printer $itemEndPos = $tokenIndex - 1; if ($insertNewline) { - $result .= $insertStr . sprintf("\n%s*%s", $beforeAsteriskIndent, $afterAsteriskIndent); + $result .= $insertStr . sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); } else { $result .= $insertStr; } @@ -637,7 +662,7 @@ final class Printer if (!$first) { $result .= $insertStr; if ($insertNewline) { - $result .= sprintf("\n%s*%s", $beforeAsteriskIndent, $afterAsteriskIndent); + $result .= sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); } } diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index 3f043c719c2bf287748aa89742f06c0273027c0e..21ff05aef6326af61deee22c0296bbf387e3e65e 100755 GIT binary patch delta 591233 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 z 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 Avd$=l|}WQgYn!}+ny6AUW-!X5F5V&K5Ii|P~C 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 z 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 delta 455991 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%0Aw$z|nAeO#gWK185C>gr)GKB6g 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%0D)BcFbn1yx=DP{Y|F@8!U`J|UICOPR;E9)uvgyoa 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±w#?(`G}F!0>0FGoV4njA4lo&Dr^RV15`^R`wjBd$bK*?y4Nf zG%SRM)QZupxpVWE6h4OSLQ!p6j_7?s{-V6;3m4=fio`suMKfnTLWe+8PTt~NsAj^n zi~bkR5*Dtkykf)L{6ZN#U^Y8f=rW?m92T<3mN*YGwD!AjR?cI6i%u73&0UmZhCx;| z3Jcrj1zI4clzpA%Pcqr;I~dfClb0{W4&ox{dX%M1 z*e`O$2|qH2{4;P4?D9!J9HRWAurver6uW=gkNj?4JzT7w->}j9XRF*xzyDu4sX}RM z{^1{}^VhL6G4@dIgRN6f1s4{4e+&BajbA#mhERW!WY&*DBE(KBHO!v`P(uYw@-^9q z^epjw0xX^Fte%x|rxeV)et_UODgLCHvOj*ou@Yt>lNlxph9;U&@vEsYhmfjK_@>ov z2khviOIPh!U9JHFHy@+Nsp!s7Voh6~e?v(R?)d?JEjKQE$red_mOk2_6r1bT1pLqw zXIR40DvXdC_B7_KtBlR(c!tuS_*&5B-i=E3l8ryv0Qc2e*|3kutH;5w2T9qr+5-33 z3KL&<{4MTa3Ki)~|NYE%wi8Wi2l~TAIsit$6=tKKQ!bJRzLs$3ngWuxHVIp z5%jbbcnIQa68uT3MXUbjIMJVk5VNsWH9Ko@R$(?61KYL84M>;egH>U6enAe~mh4Zu z)18AqwbMQoFt7IPLb#aYRDAb+bW+1ao)6ubdr>ymnr)RM z7|pGTMdit+o?s~0A^@b05r3`I%ukxjelGj&;0x8F-#KE6QAV|6V)u} zs(oZT-~j%yw?Da}ZYR&);hP7+4)`zDr9G>R7Nm1I=3iNd4P2}Y3y^3>cH}IJ(RcU+ zSAX)2MSBwD!#p6RiA?Nf1~QQDnONt-G+3(L*c#;8^2$y?)nC@Rj$g9(hYm_BZu|^0 z_+~Xx(1Q=^?dh*)n{;g3!YJ5+o;@j!=Bgt;bzqhne{!Shk`42oS7FGjZQw&wx*Oin4ej(_Fr0eMe%=e z>R`sfa+ZPOb}U@)PkyJ9PMvh1J3qVV#cCV`W7rWW82r@$Oo=5Q{ih!}h>esuabVS( zV+8;C6o>f6*_Typ`HG%6!AP~eqGUU;24FtN8gMMgTDUN0K^_*sjJa7e3u*J2pFPYL z^XFUqped#%-Do?)!Ec+_K`Y}}v`UAqB{*dddT?o}iY^~^9O`I!UC%1wPsaXRMzq($ zANtt<{QXxZaZ$YB-!FiJ09VN_D*VayDy&{7o_`&uU6xglfsyP%p+DKTCB&bY1>ke^ zV4u}$eh_R7J83~ecumQKXw{^>*35mgD{PsmhX-K0AN@fjm{9C=f6`0slbZ+CPN)`v z2IgcJ2o+hNfDO1I&Ou(CC5{UkP!cgSf6ti3Y1(FLoN>{KvB^;oLgEA`fGwLLX8iY) zDKG$Ns)coXD^k|cgZ&R!GmTd;I;d~Xet(ih&{zq=&z(m1J zb_1aPi_@M~k-l~7Y*_v2tBvp3vNw8TS#Teqx6sm@67B*6XM1^2alwy#Md%WrqfWH` zbf^`3|DqpRVJ1;pu;s9_N+0R4KJNn1#d-P_q+;qv0 zOk&M*#X*=%ft}yI(n_(TE+dOpoV?t6US6?ghAp$Yn1D0Gc2b;)7P__a6z`v)JFt!K zg_2-eKYS0OG$A_Muk2bJ!A)d?@b_O4sVM$`P>;;ro1na1WzkRKm`}E87r(|=#_aok72zyVIGum*>GadFYfij-c_#hSl3hN@o$c`9=p7WF_zJWlkKIh z16#k}j})qgJ{)M5E-;u2o0~n$LskG?z4}LcR`DMwP3!?$uw#)(zG^-?k^L~o{n+5Z zP68=TEa!k9tOBA7^EnuO*C)-vsx%L=JFEiLN~xx0CR}fTXBF+<1(3D#FnAxSHEic0 zoC3A0lE$7b6X$9MnBqE{{S0XI>?tVHL1-b!~N*Nv+f= z*isl&)%2^9D|T{qPnsE%reyP8#9p6$c-)_?qV?Y3e!^WtsrnzSwRh!!HPM#Uo$x2; zSzJ#gkS3#!R(<-5lAVV-Fozj03`4J)KXL)|AR8Ft<@Lp$IR&1^LQKPmw({kCGeX1I zPT8=!wKt3+w0~rpEo+APPsI*kD3fHId$1O)!#L`_8my#w&o729c}>C$UDQH zvd6)S**5+DdErU4^~zCP_47J3+*FKx46E*MMZAC_2Uc@I9LzT@ipQa;=I2aJ<%8pP z>=<^CaCBM-*1(s*;xmHS;#eRTUU5rvrn4BBVhoQQD$G{bRu2WXA8I-bZQy9SswafI z)Y)=>U_ZJ9VvYMO_9sz<8Sq2RXD^2d2r_qHZL8123UIa%T%9;f$vmGHy0`4f!UY&{ zgzL~+G!boD^C?UGi63E$;qIxU?qv<`eAhB)h=_su=^cfv^g6QURiel0A{dG-T5ZQQ z0A&c5K_M&+AR1di`Sls7h7|~25o+|!bY8loVmU}bH#sb6i^9H`LGdNCI-@l z-vTH_ge}3KFRU?^TM=$7R}wynslP~pV&E7Q3^b6Z(=td@248 zX_3OGU)tKA|C~6StoCFz-^K_hwrm$t%KxJqM$RwdbDkYWXnK`45X)6Irg8tX!^n>j zcIgYUV9P1Ynl?9wm26BD=k054bu7Bk57s#k&mVF1qHU-n%ZHN++;MfoNnI4JPpTWo zG}B$cXEeFPN#9ef`t=Z4?J7Pt>6xaKfM8QczvRdo7Dm9aB*ab&tJ}QXc(^rWOiKk9 z{Op==--=GasRIj&izl&vQ$ICfIO;c`MABbsYWV13ILm_9^34b`m_2_v1u8(Nx#)z> z*>%ICDlZND!B z+?WH?j8x;*hUcF*!KVlZHxZAQXLb4U;6kE;*$TkdB*&9E9)B~qe@2di9RSkO{-*w4 zkVDcAUk$CJ-kh<-TE9aaM=%63SRGvnD#V5y+BNX>VmNJo5RJU+6Hm~gGaIHx{d z=JCIe)jd?FlnWHIZEoF(Tjk6q zM2uwaw&Ob&c#;v;toiFcu%|cFU(&GPrJnFn*~#TNZzIF@e-Qog2+N0-r{h6`UldNQG-s?kDmX9^dL(%;a zOL>@`nBfVuNVmRqRoOZSI%?k~9h;2gt%|%w^QN)2fBJxFl`d+rrK`_e!Y1?87KB-z zJg;M3l|!K&@{$%MoAsn8>DT=sR@x4=dib;^$)~c|Og@68VWB5XVkc2=kcvhh01v94 z;|VLmn&xoKjqy28GSR{rX5l<>_MD#wRHORzEGQ|vj$Co)cUOCoI3;uXu#ZrAY`Q}; zs<{Ns*09wRt9D3lb)F z#k*BB<%cCb*v->6aOBwceJs6u^qNL`b;)iRNKny%h8RydvVi~`y!pM|R+XohDCw-? z-7`dEI@Wm;D3j)t?H(+3UAlW}Axm601PODl@AkkusZU?ujV*<=?fUMU{*H)ckHeV; zEcyjA3+K<}C)Y)j*~QXW-wX4I91%eg9AUG4%pc^;PrO2(Nb&>uhRTt|w2ThOsIsNe zftQVv=lILP)yG=f{enjnJIZ!~$tCL*FW<8&M z)saMb&>ekSV1(`24d^k1+W~bvCpZQ9u;bP+xZnWl& zP=$E|LD!CMbe78RH@<1b2EmG9&Fp2BpkT2FRI`>%8nWztW*F=Qzq~D-%N+PmW1PrD z!fvc~!Y1y6R3{Y58RtZveUhGcy%x{=opd5u-PqcfBEWBosg@*FUDINX`aWMTk7Tv4NUbwkA_0#XtB2pd4gaS)FNHamGJrBV!^u19|nCiGf@Wzjz`~CJXE12 zPg>AW?L~i9(N71qwhHom8C#9?Zu}W*EkP*kqg*a>zat_gfS22A$>-*8Ccagyz)_2d z5t)_4&PK4E>j4d|@jL)0#m>&)4Y^KQK+y-^PIT#}qgp!m<%2eIo|eC;(GvT=Kw`_! zYPIAS83sRQDC!A*bk9Xgsw~?NgJn)b$Na2^mK^EZikzmcXitX4sc>O2A}t=?meFkz zJ-_sFICmVYCEXQ|7jMJE2NSh$k2EkA;tT;%kdE=WO!1onBlLf5jfvKr`P-AVB;A6M zu}-MunxQ2q#>%h5tw zoi92Y#FydoqmETI1|3oGd9$>{UB(+CvmVWY83cZ1ww5%tnlx87QqjX$c-sowKzl|K;913UniW2 z2@haFPirB_fAxwdfqV_V%R8b;#_(T@GEsCAi(09LgRL;W@@jl;RGaC6i#2zFbXaKf zUf06R^zsB}Y<4x(S`xwsy`n|z(tjyb5I-DK)9@;$yF)e?ZG6=}Nx^fNmi$22;0;=` ztsOBgFcWG0MlES1Z2mN7cx|MDrqk*EUrOO_@|G4-)yy9Rshf*4QT!c#_iZhCv#poM zbJ?aDVgz>pTnLNCIIQ{7_dr~KTYhz}GjuR9VuaV=+n$bixlYegU)ExIG)=`~=99Mo zmw(ehDT|%!jHwyCO-qhiR&5qO!990t$v9fyW1xbUexemYEFs1#F6>;fGf1LL(!$x( zJT@+P+@-db#g8%UT)Ym8{mgdYi?E$*Y+($FS|Xku(DXTAMN_}8#pc>g2g0!5p@qRl z;3$}l$G1y6eD!5#kb*0%2AmCKe|{s@?nJI77cB&U;DRO2*x{zq=dBRxH5>^IUuogN zR`WIJu|q3Ks9N@@l^A)}XyMILXZG~BTJk*8oU(xYFzgqs&~U3%ZP9H~YXfHXEhu6X zZ~RV6dXY!SnPpz}yMU+4Hg<33Xphzr|6!jNVV>>4v2VA^_z84*r6YTLRF~F&ZL($W z9<+o>Fa3x-`|ZWT;G)0XA`iUq~K{5k@{q8iMy&yH(avRA=U{s5V>;L{>k zpmMsn&gC3Qv=qqQ)@fx*Dn>6Pyxa-Ktjx0@Zer!{B3Ypq#t?pq_ zt(T5`-=QcMMeixh7!W;Z*`Zz5B!UI`=^%t<>d(igo}PBPsG>XnFljJX)|iU=kMvN1 zLhkQX%9;nOdtZ-*_6N%LW_jJj@@n3R>EK&>=tv9D0*T80dk0)}@VdpL&K&v3K%KB( zYF<-Az1v~DYQvg>bYzB^sGbhikqR&Di{FpYk!P&fXT{j-{H1$#Xs?QQ0+VVX z9a@s*HT}}E%!&Pp7*mhOE6R+`ho2guBct2b?5MH52OVxk8+RO@tRvll{Edx){IwJv z`NGnyIZ&g=brr8jgMwg|!iwUYtOcy|H600}GruWyq=g^D63I8W2W;Y9Vp_ID?;B`g0mimFl)U1(_+)A=NOM$6Ib4EwvKqK9ub0) zT}7;%Ba3x17e)R8;TYaXsjJFZ`%BbO~Jqt4keb%_pspk}28^Ga-u`ksGg|GHP7hCZ~wh`Hypd@$V=@i zW$+hQiP6ZI!;NJ+oY|%LyFe!n8Q=nuk-AL>2xe92$a~fus%>~#tOPR$&3;vfed{Bc zZf|B1*N~iS*}fL500I;&*j5Lw*egL#I`Jl^BZIJ_gtVarUUgwC6FfvE_-ruWx=}|~ zTC{J0?|Dl{7Aee0TwrX0S#jqA_EC27TzK%ZuVtDt>sB+r*OC40Te0SI_JR!HJPVCq z9<(igjO)MID+ls|@ys{=;DuRQ{wR;Z`zQ zMH>p9-=rg(zz3m)$_Y#)z;Ar59xU;I12`!y_@c>!Hgx*YnpfS_5sApSW6%5sZNp5} zwfJ=JK=W?DV?v2cpY+Z9Oe#W8`~3;bn(@SR_jK46 z$|#tCPks9}6o{F&VI!aiL;JvD45u!RCmgupzK(1(lg*>yDA|J+0j%88&W{EYETH2ZRJdM zwXzl_uTL{Gk3MIO{n$h-*prXLqM{Erm8w|s)1jS;%N$?*?j@M3 zDxlEoZ-@XbG{vxXZ1K|I42lZiOrD^{hq8d#XPehl@3y9Spqaz zR?|I`^Otjsm#JTCIS?7}qjdl66m>v2HZt97lqDD|Y$gYC@pz!)^$^%%nq zgPts>caB~IsL%U=5mwBHkmR3q(UaTC_9giZUp;vj{><{ewI);#=D6wIQ5t@um!52} zY~4(X^!HkSF!7@g%}gq@W>?eoFc!k3L;|X|2;Dq6QcqahE?5){=2204VYqnIK`{0I zW`q+PIbRRiajw6fgjlu94dN4H^kjVd&Vu=aSUt(=kc11-OPz4Jhn|eHWZOnZLk2WW z(gU*&hf0-90FSGSJ}NYCyb1Q1LB5zj3~>&Xip0Og|O zYAdR#J#5PoKM~U``PmWssscTzdgoGs>7y|g5Ss^^ezs$S06;;zp#)QhXJ&6v?f53eZA7o}R32+Z`P=RU_kK11qY{vi^+$BySO#jjVCf<_DV zqzCn0TdJg!em{#)Y1HY-YJheH`~7`LJ3e)xp5UbOul2nKmU%E%qKE6z&M!+f)cX7H zHSGwd2YVp$xM0}f7XPJw#h0b-e^Wp83$QkR<_SI78K4l0l)buH5ATB1*Wm3`kA-RA zjYud^TKY^|#MbWifrjCoA{2mv5O6}i`C~oY4fu{v^yGv)Q-Z3Um>Ea58-MqZC$5{a zpJ7^l{#@=|uP3h&%dntO_SGRELwxbe_?j2MT6|rw0L9iJgi$$!|DnRFgk55g(c3${+iBCcX1(AuTOR%qv-0_OYMc0FY0p9rgy7q zAhTr_yc?mf?N}c#P`N-oGD{pGts{6n#P@IQcM(k3y==L&#)Z7oDpcjhc(c}p+#;=% zCF^3$+>5u~1<`enq(N)9nQ<;4EWYlj6MxFZMI4Q4VDQn={5MOjWSAi%Eph(`3tj63 zewFz_6R!SRQftf4xVeze%%Y5$m1ePj;5MEvWG#aIAF3X_p&PL6U`AYzFwvWg!yO4O zM9Eho0dW@Q?WQNVzk^wrq~e-N1)qWh+NuvMMS0kj+#G?c=0CcF`HB``5Zl-o%-@f6 zfz5(;F`2?x{ZmfFhQHR=h2)zzrmST>rihMs?+gO)hq-_~KZ8LZG^<&U13{0J;DhPDo418_%wvLfZ6(hPMGmOS_sVdN4kJ)+Yd|LZigqjU|q@L zzu<|>2t&f}scdpVccPXq96htak4?h2y_C{(&s~-Iwj!zAc>dTs%nD~{I-X!Tn9S+i zn$ab#F~*tp>2=Xbdd{UKv@83dGypWQ8S$sno|CWZvFE#U9Lf4I=4+yO!kr%E+M?DU z`7cG1iNSJH_R{1thi9ZplV>)@BYflOSm^Xu>*L6WF>J!Oakv`lwY_oV1;mr@iNk$R ziTL{_3#yGHU$X{$YuK)D;>clUjlbLZOQ^8PlHDE?hb4CML@b#@-&kIQ>x3Li>{<2s zSn>kj4ap+ zQ{#w=hh2yzP4k#zl1RFSX6A5_QD?;lpNs`fx$eL{3YKgLx+&suNE%?xrlUTTI>j0# zY@~5ypABoq090)9yjWZgv^hJLY*q0$agEb2PW-@^al~KA-bPkFzf~4X-nU{Q&%{Ex zvCWGm=Nwt*6|vY&h#Y4&1{q(-*-ktF>9{CKZkcb~97ha9z8Y#G>x*IP+5KzG)w&Y|^( z+p~b$mEXZYt}9pr{&VN=J_STt^0YT%$!*eZ)J%-J{8ht2=-q5<9L6#Of8%Yqxb$jq z5VKQzLR2rpNi>A8kvGswchM{w2CO#lr8HPTKLIrxQr#dOE?e*-l#dV_k8rbY%Bl8vjYcNn4e)X#U9?IAp~k zy_M8|+R1*7Qkv?dX*`b$OeQZX%*UMZy)Ir4mJ&kuJnhPrLlVim!`b^_Gj{Y$WVwc3 z?6jvR-)GgABnR_Z;9OyE^PgOLkcbuZ#K7xnDfhcQ=g-pdj?G%Bx%16?u{<1CgUz&O zHQjv4cz(UKCkd!#M!(*;3B+J*uwu`7`GUP_!|FU(;IBR5XKU!c43sfsnTpTB$=m!{ zY~FldtlG_oeWA+*g)OsVeOCBl-_SU=CqzN&-hB#|na~~BpO55=pO}%3yBcecvD< z;vg;A)YM}weQjE;N*qY4>7{|!-K0sj%`FP)7JGvP( z<@(Q(DffD2wbXcH|A!9Jo#{8fJ0ktr_txjQ6=BdV+}u0#mbc_O^wz7m91e>{EsdRU zd4NjN%{BS#GBb4kd_WMH^^9b>asO*h<~7y1`ixrI^un2u_LBa^3q1z0FTkqpnLGG= zABu^zmb5u0VlDZlnD!~=_KEcCZ#z9_Ms8k?Z_o6M(Q%{3B#e&hDISyV-61D#Y)qn@ z9MK^;A$e%xnAo_Cl;ol2TH*gKTdo*JGty0-7Jd4N|MjZzDWm1&zVc7HHQi+G(I=`y z?bOi;$?2j{-w?c|Y;r-&#m@02J-wH1vgwca>pK*lkPw#`n=x#3N|Ib7tV3pM%D4;+ zO&&r-2pv4e^r^6ju>&Z15eO)hl%7?a(^@ZNnp z6i7;meN?%3pALCLfvTAFcG(?=5t}f!U0!c$7;AF34DTI52aGj&;v<|+9BcBh2=7hT zPBZz?SH_y0EW#t{W)yRe2Or#te;1 zi%&=ud40mDVVud(H9WH8j3lIGB*exgrzZ@RQ5hcDSCn(MYr}1LWFPv(IFp-Ycw{7f zZJeo_eR!YHN5iMTsvfu|iuOAKnkGmgyiZ5cN)z-J-sf?GN=uIct)&b@CY}AP3OMtItFRSj2;~`A!BGvnxH5=Tu+~vXwum|Oz0Cuca1l7 zvgp&7o*Qp+a}V#+aoS?zhRWbX;{IEcbNOSd1N4R5h>(t54oyr+mRCjJj;O|i4>I%} z#~YWJ7MEZiR!3?Q8FKk{b0HRMTym_rd{jqlrj8ksm>@$N7D;O-m^?a#b?hJOYHUop zXfr%4f)bE%WLQTu#|%kJA00DPMpf8j%OpJp(=XQzrAZS_u3lk}EsxmbF-b$>4_S}USR%FKokdU01kQ|p0pPnT18xYiyiKd>GVIZ~p6HUHUF~)>f zMJJk+wErZNU3u7Jq=ddR0DD66aM5;q;u9DfpJ3)Ek9BFrddCTm8ycS?nuzK+r?KY5 zw&4Vt`R2IzghY9cqB`OcQ}ie+g8n+mr0WzG)p0gZW|)~5MnzJ?WRt69SX3X{Z?eh5 zD=exbC4dMMW6bP1DvHjZZ1N0wY{|!@iJ5tf4%5aZqz{dkGs5VXXxKfZBbZnfGBt!m z(Cd>;ZXO{WAxw&Cs~(AqpG__iAstZ#mX@B7JjUEaM~H`~qzileFF}aQi?Fd-<=n0~BXvdWT{%IagXh%4QB_zirCYozR(v~SEy?c0QM^ML@ z2O8R!_L^$)NC<7Wq(C3T6H|tm8CzIKI6&vxGNFD;D<>jjcrnD zx(q^iDBU^L@Fc+ts8DlWkOZ zM?#GopAKq~r#QUhxDt|56XTM=na!Df1s^no_U(wb!~`?4BRURF=8R%^5ux;ahRJqORiCe5kIlCkH!^|Wf9?`Lr*aR6>5xwz>mdUM8M8^?;t0bgn$m}Dc;|P-C(&HgE z%~^fvnoN^xzle_0Gc+Yh3{k++w`1kll%W~zbNk}B)#Pr`H%k1krjNTX}B0A~GolTwuep&|E1 zHzMpNfx9A-z5`E~|Y+wNnO!K>8(`cqOujwXV3+P3^-aXMSNlgR)oa$u- zU?M`;u6%o#MpART!2-E`y2-&JtPic7ZW^@0YHhP*wf5J#0N!waQ$K@I`f^|t~BJ$+X#Ai+^D@s-wH zx}7?dKJT)`k-Gc+F;sfO?~k>xrFt!Kpn1Li=q8m1{ju<<6sNdjk6;q*9V;oq>CQ)1 zlDq32SFJSF?~ao~s_J!Tg;E+7aYsR)-KYjkb7H+)D(7aGNHu}cH7a$h@cSEIL-ikG@|}f+Mgutr2T7ub@QD=i*ai z)oS$l1>2L-a(;h)B+2c%9pTuD1JVx>XY;PK+K%3WgJQq{>CGjLg^D%f;aSPY=k+4L zz0FIW9Z7oFn~hETwx3eN)nGh)ccdQzYu9;F|7j=He4Jwp$=k-~?1~{XEcmITj-*n{ zXKr^Si#+Jm@AlYnKiqGgc~0Jwxwc*pU91lx)-Lq(?WdfiAN($qWbsioex%5PeSjO# zyYmQ(k>tKFu0U7w_0u)v=MYx#9}QwLI#p^&J^gA{={#mnVNRfi#(g&Y0M!r=EzQY0 zH+#)8cUQufxx0~Zhgvu9-?g}q6nC@DKq_zkX>$*0PyC+JMYP$j){alYwyQ>GzQ0Uk{KIfGQG-cI=814!?!|9|o8?;^of4s$?&V+B!8pvA{S6DlqmaHAmls{!gArpZh zO1kx<{RXNTS=(9i|9Jl^Ldi|$q$#`hpCuwqLfRK9cKUV_aWPwAtM~2KP=|y2vCa`H+=W>>W2myQ6eUd%Qdo_bq2bigUWku(*leU6{_)`7g8Of~ax7C87#w9W799LZOs_?PEY zaM8_(e_bz9f4Hzs19!v?ni@Qu1+0DE%PDXu}OH_N2gHHqIFN=9leA zucF6ivoBY_sV4p6c|o%+@%1(%LfmvdOm6f8_FjdC*zqPOH94lB8K$!cB3b4RcZr?5 zR3wf$xTZp|mFGK@rrtKCYMQRyr)Bx0;cvzjZff!> zZtq?zU&AlGJcl z8jEBP@;7xpPf+6^EJvySWErHy?v;@x}+1k*JuwT-bu7=j+NQe zzQmD~QbYR^JTg%&OreiM%%W4&2%4xyD?#nL=K|!xe^WfIT|s$lYW@LQfe*|GKVea9 zhjY9#UJ83eT&dy_CcN0W7wzFo+b~K^j>-TDQc2jsvR;ohIQeLa zKc3xyNlKLFlg6kKenvGh7d!OJ8pf(|K-}<65Y8)P6!C83)Z)DJFDm1Ih=Q(@&2Wrv^Ze5ns0bcO}e?# zbDeKmbLL=2CL_v4ENL#5{|GC7BFKUC=)u0mRj-~rXN&`R*NJUjt0F;Fhg9gZc%}n+ zOG)Dj_j)+V7sqFd`;ZEk$~*?XYC{fpQ7l}rD2MC5vcXNXmiVT>p8npQ58Poxra!^;M*~QnVa+S65($50 zRTBB2nkNhiB$k1#;^e}ycyicEW(&OUo*<(3Y5(%W8qGjhl{Evy$&4sA60*-;y8goV zlib+}@XHT)F#`FfTJW0b!Q>ahgFg-?S9I)`UxHz5{IXLB(J8q2u_u@xG=z|KJrFt> zjAdRi1EK$G-k%gg`1_MW$>c#SWp60>#Q9yJWJDl4_){=>k88GulJB+5K!f4MJ3A$W zsJZtmp`?qRzlQ2BCNZy3A+UOTj}IZwTk_vWgpiqv_U&_#e_qK}#N+-yUN$_0WLh%K z+z>2$(b`9Zn+^t(r<~ardxCK)^YWEo;?Gm?{gO3bg&$28RTxePQ(Y1ui|io2@nW!W z3aNs^U@xi335P9G*47g^PagW|33sXJ(-W?0>BVnO2+jTeiAw3a`zMxI@KRW}Exwg) zzkI~6kz__E?&{EoDBT3RoI>AQ(QGSuE^EG~<*~m6k#AzmO2mq5{jN&a`u()-lNF;s zzbuXZ{L0!VB>U#$EgC%V)nfdWWx%qG2eQ2P)Yx#Zsvab863+uA+SGFq|B}*!X1HF{ zn?rHfsc&Mi_!5!r(#pckDX&7IaH1BLb#Kxuy1M?-x)F7GIJc{*jgcCh>%PD(=m;BO zC8({UV;ACHo?k-V)Y4uHYTc+~LamxckC~;AMrYS55#(ZB=O!8F)nXFFf(R6HehEb@ zw$h0iwTVh|um`=as|%-biFLQl3WyZCzIL#=2Ckr4S$o1+32y9!N*tInio%UY!Hu$^d;G9ye6HVTM%#tat{|7+*V# z))dw{NOm@Lhwv^RB2(y|UcK=^)7#;=W9lcwr_xlrr8aO~sGDrjt~=>LO|4=yt+uXn zHK$6ci|W1@PHT9bf!42k!-|E+xZqNjia%#q(W~3*93=KtU8tUIDe6zURo2wDNK=#R z4)idu*@v(yq-y)R;mUT+3JhGPiL2}Eq^(`*Tzp$GkY`^PB=2>UOhm~jsY7-x9xmzg zw!4^$l@cuZ%W?bR&Ha9?KS5M3Ucsxim0T2c8;Bxx(SjVhW8g+F>9|$hInoL~`kCV( z>z`7^stZX<=72~XrIhK|oSxTet$(L}f4{D>K&Lq9a;C35bD$GjJuM1HWjmoBIdOGy zfAWl<<-+Vd8q@s;XIArDe_YoY(rFN+SIe9IiS3%Z8~YRd86f@)B>e8iL1btqzc{%+ z+2`4+e^#NXL{}#M>&jn3>pOAW^}%blRzfi>WQW%FhhmpveA$M+d6eQw1N^p@f3vr9 zqsWj-hXZPB10D)lv~U)iKV<;iA$re_BG(c6QWS@C$iaD0@WoBoZw02G@os<;+yXVjk+*p*cuX-&CB4qi|D4dDO z3H%*=TclIt1zfp){r5(Ve4UBinqz+b2tVf6pX~CKRcPtz+6%o%Ypkcu*?2NQ&8{1q z;Xe_QfS^v=tTZaw%hwPmisK*QFO_=V4u`p#pX15gD9QqNtC;b=8{&rd_#}{@sHxzl zmVMPd0m0razu++<>J_?M!{QMc=h)g{^l#-h?8P1l@V6e#Vu+64#P>|XGF%c+y!tAx zByU%o)x;!VLbv!PAa33aK!jfcxkQ6I?Zts=d;*lTnf?j5oLtV7k0beAB-{w0SM7GU zj)L`{oIqZpUq9KbV+XefK{dO81o+-PDnhOHmOHX|BtOM^uLu)+|9Oz0#hD3YM+y5F zVcx@6l&<_)DqZ=@`aMi&sz5X(s;^iQLn!!)4IkKTFloBq%6u=dOV6sg3en_vWKx`^ z@i!B31BIo`-qg~)S5IE)y{_eiJ^jy?%Nl9pw99u#Qk-Sk@v9$(lP$}c%Nhl20rd{g zTUXuigv-M3eIm$hduI2t6$mccSZ~EU4T~Uu;yG;i>C?LXb+&BTmIz3qy}yruk{9&O zFfa?l;W{50()2x^Zh-r`6)R4Rz_nhQwRQw2&$D`i+`7+#YXmE=>I`k9`3&w=r_s+L z#`+%{tslQz%Yu_5$Y?82_kx*p{)y5^)`A4=Fu#l zAMnOmSbTT3I7LLB@0g2wQCXO?B@Rrx#!Y|K{Al?eLJ#H9r;7=|_jRADcuNUp)Cw|$vfe{$e=ZRgs zXdmx#Hx~3!1fms;L$d7nEJTnWvS7(8;Je7S?v5a_GM(p3K`a%2Nv92O%~f!R zuOi5N+rP=2y(dE4iT`+u=9-_>Mv!Y@KM4CC%tCI6cogl82r`_dEQ-K9R7`NgvRaIk zH#)JcjS-lvuWazBu=(P@NI<-&WlQ&rskY|_7L6nx zR($Zxkz|1d6K`r^Pi}m}kvEi$B*!ew+6Uda{gf>q&?TDOCHxD8h8)Qd&tuuL@>eau zWJ6pOBI;4Z#L6jfYI)XzY(avQ)APlJ zq3ppW3%CaC#$U?MT(KbgC(w#*+Z4=euq70|Geay%b_U(~Tay)E@vbG=G>;EmX+cIh zasL&lfxG*42(Q{{sUe~Ks)dG}AX1Ry+4bFNPsg(X(w3Gp#g6>R-vY>F11+C+SqJAB zLe9NuK7PMzS9`)B4VrSX_#jPN>ElL?>Ah6EMIT582J*dl!|S)M5+et0J}nxsj>Cj+DbhfkLNL@%E%3!-0kLc}}n<$kvaLSJWue&Pm$rh&#Zl;8>~4@700^E5^v zVgC9OZ;=p4{oRa?ZB<_MG|)}i!jw9z5qeeavN+`tSakO86OY}6n@M#fH^u`j;c zFy+>kUSnI-gHF*IMS_!!5o(;dpj=60vc=f2xKpRdBD_9iE_Z%&i5K1PCFAi|=OR4u z)UG$V2aU%gB)3+Q(+fO|!hK|I?9xtjfQM0l`^2whdRh=&gr_OnO<)_G|8o%5bfK$p zhyYvwXYFc)k7frz+gh=vPrDn#k$JwdWB?6uHwNN6FL4>J7ZQC=c9S!mmKC)o40JV5 z#No2;bZK~lJ+-V|;zi5*8R0ZVN3AUGF222~b$??oBn&=N=0*+ujQ%vqy4;q1Ai}cg zpe*BZ`T=}HXh>xV-d~TB2Y$Y(qz5aX76}y~KhEfj$}w*&!5t;zjA3-^I3wOQKd?me zsDL}Y7bQcI7jEoCtul?rXnl2@4J}aSIoYJ)37`ddQI4*C)>%g#vy67MV0|gvgyW2% z^u19{!DxML-*WHDvJwY+WU9PS<_|Fj(bH3nTBV_%L2OW?t;=2M*;wOZTE>grDW7Ic zqf0HCyy<&gpEA&1*)q{|i8cDN>K|f>qUr%IXQJKKsdV(KpNj2h_3bhhO&n&lvqpQ1 z^Kq|5jCDD-Hb8+5RX^2;7yS~Ae-PSu5v!z$U3Iot zrO3qtQH*r9f=V)W(US=N4KBugKz&dqF~T^Aj#>01RO^RnbAL#%qqFRavAqddZ7nH! zgMjI#wewx*t0A2YG`bJS-&h)BRtM3Sd$C?L=0Mj+8gUE4SU21e^U8b&x_w=vicXG4 zT69RUhg?K43=iDV4QuCn)4LZtdx^ICnVX)J)EO5aG=o&@1BzYE?One;#)_WqW3(|B zskX{f(5>$_D$Pi$8DFG))G|GoGTMeF_H8R%o1ANB>FZ~pOZplo(xA+Ztw70*%uN8a z3BB<^F#rglU-nM3r9Cn?_N5y8l1GSFDW;1CoE8*&(bs}euC%{#xR`jbE^3$x?1iKn z2h(QP&MMmf-2iw^i`U^QQ;nTzbmz7-_3X}$bfHGVt7~&RyvYpGL!+Mj1ly>FQRXKK{G<&sBZWI~m{ach$mHJo%+$lW8!nO2cy zI;su_21BOFJX&5q`xA_@RK0zLGyU9OW;|`&OGUkBE=4@v0HZBEHrm+B24pJVDMA~< zjKS2cyh%h3f=%e;wJUWWV+^n`FWXK2#?IzEXWBV=nH~LVpm7}%0EQb)Z9&4BK@ca+ zYcAu>S`*&gI{v~_c-zUM+(~5gr+$|<;-?=LNrNd?DHpC>d)bEO4K^yNZlQ}A3zab- zJ>%O2I9O^1sZ>k@B*vhZ?5S=Man@YlH^<*rngHJUHJ!0G1;t2Z1C@>B2b|&?nV4Q1StJ}vn^+SHl%gYcypUPZq!j8 zV+?(mC8_Wd=Ka0a^s^N!Wh!u^2|=L3b&0?Rh{BDozKa!idA*bT(_@`+g)N==>jwFk zi@2w&;yD7Z(6Xj6tGmsSyx_v$BC{AF{T3EQz6E==Klg%!PXH7Wte)b5w|Fa z3GQ6kFB;dBzVIL1UwFJxM?W0>ww|JC2YTjhO#JH;Wt~Ds*Y@9Cz(poDA;8=$2=a$v z^8b#bff-mY#R|qhMz9Xh>8sFr9GNmZolg+K!(4z`VrF zyq{Ku2*xzJ$UznbbjLa{9GQzf6c6;lMKG&JMW!ZoZl$rdBHE68sj zW#p;oiFb=&M-!dR+R>;r*F9sstPB0}`KImwM%HAkM>Yvf4ssK(p^q>+()v|PZ0PAM zV+c|oa#{A%*i@WiHOJxI)W;T+n!cX!yNdD&ZQP?1osw>hM6prVOFU`IUFUCfMjxSWzK%OL0q*=TbdwP8sS>4Kwi??fywJMov#M_7*@)7QB0iyyhUz z2ee7@tW&^>SDG=JHcm7~KMs~q2EY_N+b#O5X|i@GBlp2zxk~6TEcNwCO-?BN#L6N) z&FET$P@w_FNl5S?XdG-S=mJMy3v;vSh9T&1e7LN{$umA|q7hF-w`$3;vc^3B=Otd1 zZeVO|gwbx@#Q3WEjQOfl#e*-Ks5wGg!VaEgk`uP&N<}%S<0aDO#S^ zB$U8M%x`eA(GCd@`9J;gQlk_7G7MOVwtY%PXO2Q6)oG7JO7#0BN;)#bI1aUBrBhnw zprJ0$AwaV=!E;Pg7`|l!I+tu*O9whERZF!)pqnCD79L;$xH0^pMEv@si?&Zy#wC92=TzXL|i&3AQ+sjg{0fTvk10j1){Q@}pHL#vC(??_9D> zXr(gm)*M@Apx2i!i=e8d%LHKq=uY(I;$?&JeXMv{7+t$`nOLTBx>fNq(Utr?bm=ld zGxGPO;$?y{IwdXZL=TKBX~m(T^0Os&?BKVqkWN#^mVDS&;@NQ}qQz~;pk7Z+FKKB@ zAL-QMKv#?@aYw@Wi>2M^cVqA<(xVmNOVx?2@&gjGIhA|z=d8N0$v{cRymk_ zc{!XRRuxS|oek5AqUppxe(=CIGyr!hPt1~Mi^P%w<<7!?qfV6J(oa#z@J!Jhk?si| z@x`-6Vt!;@-*IJ;*!IZjJ69A%b*S{=GjdNT2-DKDMM77X$?fUTaj_Z}CYRUM{kwaiQgczW|k3G zMwB_zdR}5hlin_ZYWli)l%h+Nwo~OSSdhPn z1N8b8=*cy&6?Ky~k1T)L+DuT@lge#q#-wsVKV4n{I+~}JTiaw!%U`gtRrho?t#EpJPyh;hfF zzEoKzmWs^V(UuL{IvVeB(~mwW6Wl;lrE4n7Y-!!DGJ%RiTgw7z=H@aR>hN8vk~LbR zRV0UQDf6eDUnmoX7P-4jtp|X%eZS1nLa44nS7_j9CRi#HiwRTP1sZXg;85pxm4(vY ztZWg!A)awH`K%JPyr1=6SB5uiHwLSfa1oj(zUKbW6~5rK%XOQUh{&@4Yf1 z62X-NMUheX&N@);OX<3@vG{(71_gC`qfF39TS@HGKPns6R{YFIW$E~q(OBaMX7w&F z^J=Yc#>Fo?WL$_rvq|gRK`5nf%3VJaI-0GRmi<#afZ;QrmI;Qn>)q0B)UXjz?W^Z` z0K=xAi!zzBcEj?y{zh3g3Io$RI(SN{9lgJ~%$jztE-OdsuOH)W z`Oo_a!XEXF3~@*7Qn|lzFO>@$9@cEnQJSNgAYaQ zaVV(AsG@aS%3|%zcE>0bA_|j&hMlDzkHNB;VO^rP4$p0_n zy|vuYPVc#%5IyCumbMX@N-XVM?FfU2bVQpB1GW3>}g1N?a`f86} zr~~VicY%YoIDupK+YVM)xca*%_~UbhGCUV(ISUY^LbDDC8A}N>OmC|Hv10>Ipd3ZJ z?{=_mA|!a>uw$U!Bg4|eFt+Y+u-L(~a?AbT_9Tt5KF-#H2NbxuG?DmPXeb--Dw>rqzU= z-Rzi;-@>+m9s#s#o5L>%VT^c)BqMzmo5wNj)=A|VoCjJRbUaB|77Hr@$xV{Q$Zvu3pc+gHmp_uN_6)-u*@tdy6gC1j zSesUT2-*0`KF2_c-Y5N4-oV3eI#|~R+lUpFByi%3<0hxSlu@q6om}a7omWyW)<4bn zkc~%a2JdteQ*%mq&+)82@mRXO2SH@+MO=Qj{I@^9nI@Wy%pJ7kODVe?(Z)zD`Lv*$ zERvdk;$XfH;J_BJ+%cA`u%{(6Q)y3yOBEmA*q3Hy0{SqTH>a4mKfLM4QiZjJFB{)8v++uwyGt!wVa*XI z^C9%lLaB|Rno-w9(zAy+hrO!YFuBwo#2=WIY_7Uf+kJn8bInwc=@f2bfq5B~I} ztW0}NeF4X8$fPU-HKQQA!lz6bXy;U=Gkzz1WyaeR#pdojcOTj{Rq>-y(-e_mWw zLh0|b6&C0+GZaiPI`UOvb6)hKD}dru2p&FQLE#^NBMRRSAk&UQ7c1X94#-Y476xea>H!Iw`p~a46h<&n-BL4@0{Sjp z2|>a5UNCc}>~_}CcfEFoG&Y@ew9+SfbdJJ$k-)3^D+*gr1n_SxQ25O7So5O`6sBir z?rrJ%JY|Iey@BjzZqfC^o=TPPcfk35$2f8cc? z&d0VcaDkAiv2{tb_m%&7Km6#~xyp(*zwv4jc$lj#wtu#S7C1}jcnurE;IGo_q7 zqXQHuZnmFU*$v%ckD{J);NL>2sO{xV`epq*!l-e5q^%((^>yIN$$SS=e~7Ct=B%!U zH^Qj9J`;V!;8+MQ`_hqVidm5g*I?Oss0(S|%DL-IYaHDZH#qV1Sh1rm9sI&!p@jAp zm`0-Q@F^S<#SU8ptHnWBiv|@tn8e2)Hpl0FgZi%=bu`a?9n_F{QVtoyTeWYX4Zr!h zBZKg31BHJff)(Iu&TX{2NRAGlz(q$dy8NaZPsPWeNG2kuJRW^ntol&&IR}%aaH0Hf z9jNPr$e>04BPT7AY5%-{IXQgU82823>(fI^EM3{tqAo0c!pho%(iXT`IQzM=du z{N!12u^BHu{{p0ldqxfD)L}SQP2V|s<$mr+(8j)17drFmV&S_*58iS~HC!& z=a_~7iPp6Ef&=NkSC}L9I?tVUAneU;tsDOZj$Sb*9BJsiwV%=o4K!Xd4#nR>VQ%|5 z(#My7X-(&f9agG!1Y5H1m}3CG$k4`4L!6uzOSGE{nEfjO3e7eR#|o7>W^kIbT>ZN_Ol+Q%}Uo;he{a)V8>8NIyB+>`=x%`6GP z3L8_}F67I9A=li6YrL(-QQ3Yd$2kS&2r9X54xzF?&Gl%=2FyzaPugqtcBTJm_BH7P zchu{r?m^#D;X$6cFHdYD@h`m+o*g)5?m=VU!%!zp7PqKJ=>Zg^y=V63(jcnuWns-q z*9|%xL)N5CfZoy~vmagg0RLouU}kQPJ6eg9bPy9XK6OKB<}Ud0ivPu$u|z)PivlOB zD_v%0)kv^5@o%#gzrphHYC>>!2*s>2KS%lNj|FKf?FrcEr4Qj-x&Dqh0=0DEUp|vV zt1;b@Bf#WwN6f7ABwsN@A>UThhw^f9d2iMgb4M~Nwc+-Cps<%MaRyQ08FN+o?H+b7 z`z>=Fin(m|4TNnI@8x7X5B$D%!(5k~_sk6`dkMgO@E+#S;=Y*~5qwVk%#Jx+#}>yX zwLSy-Equbhccz&4&C~Gv`^~_CF7Kn8m@OD3Mb_2hQK6Tc|OsUv%~z3 z8&&sWn5_k7l~pnvcgTc1q?EMVybDc@^)#m?o6RhVF!TA`Ftr?6m0QNTT{jrZ|YHSER6QOZDvIb4N|FWlhlxN)T6hsJqer5j6=pKwJR(3Fn0B!ap|>S^ zH8-iH|7#9KflM&}Uo)RqjJdgYG-MaB2C~E7RqSg?VzLVNw=|$6yQR8T)}=9IR^DNA z8!B84s=vC|%y?DbWgbN(%dks=ZG%5Fvmp_sHL0WsG@G3Zhkww|=B9xYJUAv(5PB#p zMOV$r{u6p#+6Gqh!V&})37!tQjQ2NOKM1@H-t-ZM!tb`c|1Id_V;FDYF*D0k!4=u3 zL&xykQw20}VUYveOKVLfE5Ix=R+xi~HZm&|_|mo&GON}fKth2B34|L!i9tx^V?_I; zQ7S}=xg=7-{i8lBK0fA8-S1#hLdfBNV5y1sq*G|29ptn3Ju`C*2vGQFj^U`}TmyO= zvPKpmV6v|t1C> z2;g<|UcJ-}!&EVK@F{vEut}0W>7(C(M3&!$nF>k(+Y%_{6j z^qpolGCa14C=H+kJ7p6eTRp^ERccuzObEnXmwsQ1aZ$>$`Y~#svJCpb=||Fy2)8bU z=2j~bEiCvA3TZ)>U(I~@N!)MlMG?Qr)OUYtLsWP+Tx^xVj-U{e#e2m^mIkQrk#o)q z!2SS}c!7GFT7@{MVI((w*67?zc6LW~s3Z=ZiFp<@z3&){6WqZ#Fq(SSzp(+Wj z2K4$N;eo9VnOC5J(Qn0g= z(cVBtyxyoe5zlwV{1i$7_^SHK+nkkc6#deW@qX0mfnXp6XB2gRV64~j0L=U01KC_4 zP;EZ`flt4Ot+O15*jf4>ro_K=hkVNZqljI44HkGIW7W&@B!(6kKH3a;JH6nd0~sT5 zw2C;)^|d|#+k>_oN%?ooja~O{gHfQFp;1+%cW;>abc22rUWu5i$`vF-JMgB1{|I$@ zR8r5U1~)}pHS|*4j9^9f?R6f;H|_&4uq*2X3CmS)7gXsw?zxCok9ZVTh?-mxMh8-S znx>lxeaVcg5_i+q-9o+Hb-`?7Hc z>A1ByC{V9)4;6V%G~M3@79>RfV7r-Z^pz$A@A)dx3}pl;+W|CqwIGk+UEt56-pR5> zQwm=NtxWw{#|PHLPyZ-~8VGcxK71806L$0RPv%(|NJ0*lO3 zfW=Rz3|JrqHyd|6;u*Wg=Lk?ci{Zxz9ed_OTW@+!EVC|eM1%Jp3uKaZA3>Yy#*u>IAwG2dq4^DT=-~lLS0O(_ zu6opRQ3+06IT~r03Jl`&$SsD*e^P8uA4VFRfX@t_wpGRbgQRon&4hfm@+92x40zi0 zJG|jYJ1&|h7(GLiWVAKtsw)Y|FC7$46ZWxL#Yg;yTPus5H4u-6M}KP~=6q*J_GoVA zRAP|8a|oQ2EkmsXK?D9K#+%bhy};+kkDEGqrbP3w zt)Wsc5G_I3@1lQ03t{C{?wTxr1@Al*j;jSpANAmmAiBS*2=}8G~{uahtm*$iFy1FO9%TiWP zYxVI;0iVeqD-V8QYR1e7amJ`yY;`E#%Z@ify{?A+ClC=pG*-LRXo#sU^^44oC39GI zA={#>dj{i!*b{j;&Ch%PQX-{Hb+SE1!u)d9;0zVL^-?_TT-L>(p2@RBQ{K5tzO>-@ zB{o(Wm4e8eXJH2m)I>c7j5=?=#GVl2%mF3&8(Snj5RM4_FMuZZ z+L(+moE#W4h>qU_}4z*v|*7j7rCL$GAFxMM5zR)a3i5#O!I!EN(U zcicR<6MAAabOT9&YcF#he84<27gy?H<~pMN(=*~?pSQ9#I9mcKL|EOyXVj7-j?oVv zpato#m4VZ-`;733Z8Qkc>>v)0+}iLKynCD9H#q5h16HEvl-90CEA0h=s1-2?#^{`% z;9t4F!M;a+xxQL&_chVHkeU(tttS5Lx{+&lcvdI;2UT1A^%M~B22HN&w(Mj z^CZ{S%Vqu5ev);4+25qSc*ai8<&OshdZ4)VP}l%kZ?ZEP7~IL1b`D2)@b|yi`CuSe zB?IhF7AFF32R6_Wk@z2*>?;nFD?cF8>Ej)6+eByB+3NDdX#}i=r6APq)M`A=K{sBv zvy}sbHKij@h;?0pRSOQ-LnvYAO@Df48$!nf^J=R&h~PtOGyv=Ar5(WgQ#FETOwJlV zYeEcC^NycN5yL?{IeYBwC~>hp%vHG1eiOHE_zu@j7eMr*!_L-hnYj!xt~!hn9}V%u z&*cA%=Nl673J7A-j#PtFXxcKn+Xh&bhUMDZ2f+;4b9C>FsZ+<#qBCFMmK1spqR^j_ zm6-*YtsO0W%g#1M3Ae|l1!+OOt09>F!9#lsDtlmOLo86WKBO6ZBU5+UnaTixXgBP- z{`N#56$ClhTqyAg0^_5>S)sXi?8zuhz5`cN(su0F(v#H@8`JzJdo>jI_{kp4(%m0% z3HFhCpG`G>rz4a`?X@!^i*HZ5J9q~VAy?QBn(P#^ln9mz*nsCO+yX-1H`@NQy`$bY zYfJ|6004MbgS3ZsHg$PQ@gxXud&GQ8W7oUA5Iy80;G-u#wjg z5kl2ow!f|q(1@;XwzqTt7VHe5z*~4g-VH9_jn(l!&({m=wNP?>0YsJw&w0t_QOr$H zPs|zYeo8N44(Yud6~CACk$57RY3dM(hye>gd_9K-7i8KKVYDu%!c|8G)uPTH*=un; zC#uz>rM_@@EuHc;g1a``pOsL|(>OJv2{`B!P}-$+|5l^pLnSO_x64+Y_UyN}<9f6^ z8^WOARSPb7&4-_&@D_xoW?Q%k$-zY(jOMk@ zyT8Y^&mz1JQkULMa`1lOG6>YS1t7ZO9d>5tOyipRMs+9( zWfy0AlUFZU98jY+4gSSG5mh{M@xXrgUOSteJS-?}t}PhPdEv1%`YA<%Tj9cnuh>Jl zJCE{L5S*^G@attkb$x(=J!zMaL)8epobqH6t+OimO zJw3t^UzHwCv(?wG9)LtbE#X7isv}rCeHM=+>CrD))xenzJPM|FRtRH+UQmy$!yPNo zEc{=4V?wh)8oOLbUS=qhS9(Y+TS^X?7(()cXzGvlaufmJg0zygcpL_uc-n|K<5z}g z?>?Q7gc%9*>=!J7WX4tnX;a5nH~Hs=2_gx`dt{$ALl}TwmznF-K@9qVej<|%@?hkZ zvBBjL;XK&U4F!VPd0Xwz86Raa!FTO%asl5YC?7_^^g0Wdzmr7afHqv07Wzqu zrXEeV&ED6T@JWBiE&L9KKyY0Ofc)0~Xzt-p8o%chK?5`Gtjd9)@Prq~_lMzy9=9Hm ze%u}*H;g1s7W_R(NHLVE^b#OrVsYB&TKrm*G`X4=xv!3elzC74p!G7qM+^wmz)V<0cSXBSPD8No$Wg7?}x z9dVu^Y3k+Kc+==19$Z7GPY*Y!b|Kz(s|hY_uf_D%lfM4}!T(GuZcPR+H+4Y+2{;*+ zipb=(|B5(~1$l74ptZLjsVSlvm9N#^1wU*=-EYghnSs5Vhc=bG!bXl?2dhFAFc z+4|)z10~%`+C>|#1g5SK{SC2@b*TLgJDcoZ(uR^(?#_d7STg)*$ z!EyyHTDfi=vUk9J&gxJ!lYT?OwCrOL$DMwfUETHeWqU_&oyJ$cEU~xP?pP|m2TdyG zJ*LNcCW$%$qo_d-e-QbY{39;-3|(fgt}%}fpn?!RFogvGxMN7(57kVplo?$Gc~lQP z=nOrQX5SG(B&a1@+%rhn(VK7L5Cy!nqO~VSL^%thzFX`pS|3MAJP_8CiBMi{_Qhh64XQM1KW#m&&CD?Hyv(J2mA;6#TNrsA_)h>|afF$bl0y+He!2XRrB zl?_c>$dB_Cy{sb%U*8;d0Nm@yalHKJ7G)gHns^Exg|U4R4>tI|y}tI~Mm0P@yXd}s zpaBAd-o0td-v6pIF>O%ut)dg_LNLt199UY0#OkXz#2E@KpP8FI|6~>ITDM zxJJqb*!=Te#M8p`@FV+NUcQ_}%hlZY!-xunn%jUiV=%=EdRQ>+aR{k=|E9gU7T%L} zGCl%nsVC#WwW6}@Y&Q`!HUJetpB@w#i8^^rNg=5K=#7c9qs zYhI2?RVZl-RQ0lTxU-n|((E8=y1~-en78NC{mtUrlzvefLaN;hp}5;E!bcfq_Vt#m z|I*HHayo+l0J=fzEsg2YHe75RwodML%FRAc|2cnOilCp@TKIGox(>Ht$0fkix^t5y zj9OT{La66vOKa-U6xnwWOC8QvB$1Wz(xp&3zRAMERTPinbryua{Ba2i@MejdlAA*) zjiHijmwaf^2HmH{x2TQM5c+YW7;ronafdy+cV zREPV7I1q8aL$_Gu)Xf}AfOG2Q*`XA+RR<2I9P%u*c+%`(>c2@~Tw$SGEafssdf007 zilDjMka`d18g~yNw0*0EjRQy)QG+gTv&_M7!7uJUcbldBR3u%TynQKJlqvdPY1*KBHhLog2$SC z`0k~uC>3^rp4kj%M85Kg7{A>Y6>mIaAAo|?aG1Y3kG5NkkEeIzYLd?wJU%(l5hgb@ z#b{7sM$B)^XY6ABut_-a?|So06?P{&y zuNq)ID@WQp(Yw!z;YYG9$btquXV2pv*|;v3quV?sGD6PhED5xv03V3o)nn{0q8>PT za~k)oy$78cDay3~{OhOX+#_%^0O_N>jzrILa@q+cVpx#M-mJg8)o88WOHHA$KDzIy zZj_9R=M=ixFE_<;bc8n^<#Y=K|0=2+pnX&X!ypHPRzIXEICY~yL>FiHs%#&U3%7-j zAo3ant8BaHA!vcW%J^XlRHLY{ii#YR{wnLzg5_LW;~~SS*8`b^NT1OmDxdAqp54sS z&89$=Ehpavs*UOWhhm1{F0~=gG=&oLXMoI92GN34#%=k1(O>1gmL5JZ;Z-!CwXp)q zd?ej?rd{+vt_5*z?NL>Rzyp)Y7GP=L-PhAsbfC(F$>l5BOSe*GkY9N*T@O*&t|Ze~ z8muxm`HR7S_>n{vOMSqDk;s@5lZ|IKuT~Kt2u=$=jP+47xfh1&*oO}89WI{MwBUgr zW{#95yM4q%2{JD?`L0;5uAyx=r&J|90TL%X=(*ln zhhAUk7r9~=f;7eGD7*Wqm&$BgcIpow*%o6pkSQS^5Zr&{sACNHP6g0p1gcyvpt)H^ z>dPz(d<9j|89oN7tSm~$>0W9F<9E2;zqIvvvGWG;+R0#SIb2_(80=P4Fq2 zevWpsxks9O-|(?cYsEWvQjHeUsfY)xhN)I+k7!`jj@G*7cK|v5*3|g~zDnM=oaW9c z`0atg=s2T#Q#uvz`5mZt$(yNdTH66<_)nWX2EGTePNsfQe*~V35XguB6>EJ{Hb?91S=OFsBYhQOxqOnb!EveTQ zKlh*SH-V@1#i7y2P{tXXkWD9?t~PN7(DFT~A_zc_#==FOKUAeQ&1CJud!sHJG!|C{#=zBC+rnVs+=>B9(;H zTUO$hfamN`Vs%!dvbmNQ%6slZIdhRGCF)hnOwxXK1<=Y@VP1jd_AQ>&t8k-<#a+xo zVGS<$Qv6(tvvN&XO(W0w(UMmzll3;yv}7!DQpJQq-zfUU8s_Tvi*>I_^zglZS_gQ! z23xEhO|F&oZLi@g^#v^xgAD^os#7^F=hBeISBvN z=I82r%=(g-YsW-uUO3GhYrVobjB3){1=fzV>zp;fWx8X1MIX|&^BrqKF!v6N^e;%x z(_$Xdn?3xhAlQ|**E$=z?_a8)%j9pn@69=5kk*D%B4xki=%BqeyE$&igfBz9-?gP? zKi9M`tpg$|R1zL|&<`)qhK%ZOs#;FzoI=la`fY2PiM9m-ge&$~Uj=AHSCZ=2pXrZ7 zA9#CJT098(!^*~3eYGlsQ-Msyc54$}g0E}9b?a+h`e;ZX2Vd9w);}q`ABAd3BkQ5L z`Zt&|Qq(r2%q^Kg^lQKAxc)Z9ir|OxIxf_i=S4M|y^5<#FM)mUdSngM{0{bqE3dfu z?qIs|$l9Jtx?3Ajo)45kq%ri>e2%A>U|R^WUC^04X3WYd4sBgswsF?RSX4#95R8yF zrL71C&LbC)JI6}77UXP8`m|>N{nXIfmGW0ugS8Ux{?K)NELOaeYh($pPpPkGhS8Tk z&i=@xtH2RK^ob_oumcUqGKWFXi0`?6zZNlFsI{t~Z=87w})l8#$@+oa^aSBXpY1ge0T1uS( zIJqT_{vNVmp}i~T?P^Ae7km9Xe>N{3{v_oi1H9ZI3 zzDL$3CVH#E4D3OBwW{ly-HPM{;)GrKo3&>Zozg&a-n8$Wbtg?*fQ)8-1=d#O$k>bO z<87Z@&O3?OD;tq0Nddq+tH*0r>4H7u`R z|IrUm!o(C=ry@Zj2vPg&et+2U0K|T@>##N2_0DeV`6>+GFm1;d{Y+I|4>nqZ5Yx7C zMmo{+auH0Nq^qSbKro_T*5srgV#l9 z6VKyWW}3XiT8~ct=~%C0%Dk(%G3J_a*-?bcS}92HmH3V7uU%-^0D1A{YF9m1zaJf) z+$Ng?7v;(y&WQ08W3lu@6&%TN5u+v&_kHA)L{C} zf096@f|{_rAF*3R+fpqpDB59(lWWU;CQ$2aOB59!N9^CWBWGD_k@LSqZR|J8VO(M; zW%NYF!Uj2Lg>`ACsvna1IDFqJ`IzFfEkkLd-NJ`7(P;j)N**cEiEd@d8QwG75}T|| zY+MhVu$f$$ZQ)aduD@Ks(=F?)GQJ!NKh8o9O-XGOqv8rx_4m*6`9*rh=rCc=u?#Z` zre?`fJwtVMTKXG3w^J>wSW3(KSrVrX16MRh`!=NS6s+LT1xGC%+L&SuI%Lr;1vu2| zx#_Naa~64qYzUbM46-7{oz2pRlx&Yt=NE@qAUwn8%@MVM@s;73O?jwOvS3;mTg@*{h zAeQtL&rvTH;TBS45%XH(yc6TFdT!-w7q5{TkVUyq6- zECD`~B_*rpDBh>4z{0TXhtcH_05Ys@kq^cazMdZeO)@P6x|h$eq8cczJi_H5L2}u@ z(_D3M4GW*WB%FfV=JqW@W}9jVpuhfh3x9%Q*MP$774dP~n3liagozaJS(HC#A(#9T!a0$rB2Z5V^lqe>#tdp~05K&RtyFWuC&G|p@Q88Z)oOBu z(F5la19KHPXww;^dX)`3l{nX3b+#w z^^Fun5sDPxFV!dIsZk|R3~hon0=V1N#U?05BJ~4^+obB1P{iN&1+(A?RvM?h(Xa!o zCf|Ld+AtGw*5_ORMHHNu^L06bj=6x_)Jfl{wYXMmSi_2!!}Jz+US;!*fw2MFDm?5I zK#RT+8_Jxfz{$c3c*Gq(6!&j`?a`r@cnToua0)7VN{c^hX{uJPgMP9cK^Z@tSH(cf z7DUX64;ON>micwL>0OoTAnBw&yc=4H7t}r|5W9m^Yg&{QqPtc*z`~Th;AyDI3!jEs z94}idStirc>_MU}w4$QW6}u3CTmOq9wlkjDXKPH47Z%@!Z$7^!xaZ*ail})L*ttFWY>cZlBCCb9af-8+JBPhDAP|;s?Es5Iw{I-C` zM>T~VOXk3&7?_(6Z3JQUOtP?MWps#0zvV@+=^o7pq=gGDP$k=8E>VpvoAg2ADXEzk zRM)nG1V*co?gn+C(C2pqrI*yO@X^)yj@zYE&3c|?Sx;(b9NT){&eDr8_ZE7yu^$!% zRA`n&In$tt)LT{*R6ao6ywRypZ{$A8sPnjZJ*>9nG}=Hu!7bj@D~eL*0Z#jxTEb8& zTa_JeiPY>%+X4||4i~WnA1D?_zc;l^=fQaNw8nBV&@+>*9~H6L7CGvWD5M4w5Inqn zs|H24kY!7+*rcl9wq9YBSWog9Vg}7<`<|i>WWO;5#`q2ZMp+|p|*$G zV;8L*BsC|$Y?xd`O)HwJ}ccTnXApnuQ6DOn#GiE^i`SQ~N)NiZs zUZY(X`tGeF<{&75KGRO}VjB21(U^LxZUPsScS4bTPAa=qw-P$W(zJGZwoNx`!X#B# z#712MZjfjXv;2%1l+FPyUWg=mT@mX=9`QP+HS!{_?f@BEa=wUn576OA4fGwWt;TzLwaVGt z^bc6iX8HxH_o1-nUXhgEL)d~WI^N#9VM7Q!`F^FP7x=^0 zB9_J;t^t%r^7DVO_^WwE;_Pwf>*)2)DXVMACELzK1)fNZt9d&dMPzNAXX-j>J7r6`VjbrVIRp#c?nv zfm;R8mq^~~9*_k{0F`yNuvTFpGV<27wroLxn}XX@N>gJWW9gm0iki8%t(=0!)$yvC z+Xnl0rH2Qu3j&U_)?`p>D5Y!>6vFId=~1W0re`qn03`2!I;>o#)rGe)B@`Y`t)6fk z_mo=F!yC5(=s{1|a7B7-ebJJj=Y-k*kK-RN-TbiQFNdZLT+|3An%>tPRoQd=`h7&_ z$ay9EhQxle9X0nJoYTYqb~G+W=H%9}=jGkgV>G_C!OwjM{*Zb{VzH0Ul}h*&)Qf7m zU-IW$xRH$5<3RKy>H$B)k@EzCa?pz9C-kFgWWJ7|>6~j0cBhH)R=V7IG#1{BrMD&d zAMUv{%)|4mKJ?cO3Dy9`BJ09NEOPV>M_q~K$%KJb>vyE({!mPPFZS;v))3aE`={rc1^7}nKe;qp%IX@b?uxI#KK56p*{ALJE zxGQ1A#$vr`=Pg;AQ2=vAskD=b7h^lTDdWCGgH}QWU+RBPdNZ&=+w~{!%d#7eD8?FN zO?gXWO~Udk?r<>Gyd!WgZ`^Z!tjVtm=Upz}Hg@w<*-J_rJ(c?AmlU=>=}D6~5V-RQ zCDNbn?8=NJF=}(FYkD+X>8?FUX@ZyD)MdV=09V0t%7=kyC!zkZb3q;M$9FxF;lOpa zck(G!?tU2sk>uUM$x0-W`E|hw45sy{uHv!aYPo%Jr5J_mGM5VHx{Ei){Vj}|_i&0u zob#&Jd%<2u2GTNuJDDcwc}jR3{cm2aHYc(Zl%;DOVdO99gA7tJopBubs*{sJRz4sK zrPEH%c2u{M_;cLf{Q2(?`a0PuK<6oG&ZeD!M2Gu0MJ(u(?qSR~skbB^F7FzD!_U>* z8K+lhs|8i>WC{wA)P;Cw_@&7cv6qryMJ6s^>7$O$ntZ^mF#QBd=Y?Ibix(Lwvb(rG zco1HHsJnP-cVih{s9`@RdqvCVF}$@vPpD4#5G!DG{OL;2C+EChgbuDq>M_qrVvGPb0fHV=7Km z3Jbb8#j4CGa;dBHIaJ`wm4Y4azmIftcBcc3F3!HraCZ+n+M(3FooyLv{M!IkZ~VsC z?dWdrig@KugZenz;G5jLyVSw?EFJ9NTtuhLz?PEcaI~GF6s%VjC*S zQiHUIZ^yw$p3?c2UqsyKY0Av$Qzys7%KyL+PqkJ#T&=iGmaYcN2aEt^WU6#1BeZOT z5!TfcKergnlAf|5FU^R*abqk?9ffg`?Y$ul9i+15R(|ueHT7y7&IqZURX!sKbCa&a z>#M$6%#1iNcxQb%Zb||PNk}f<=26X6#DYd)7XP+TIV?qz*m+7{j8|F4ln;dWZUmgg z?bXEcFreZ-un+ziuQGl}%{Yq(L_80zbSzJ=X1;qlBut_jy+&pGgTr2B;16f?P+YHtjK8ML+uhIcRtW4 ziV{1h%g~>kWHT)|!k2bX?I@5_Ean_cQ+sEH(cEcjZJ`uO_IeU8+*s6l+MqFUCO)Bw zEGV1iY@o%QibEJ?dMAPKoA^&~Nn7+Cuj1$oS!4O8Xb(T;+Sdl?iT`;!kDJvNl}Ca5 zC4vK-hGJ(DTfzW&r@tD)^L0Cy;8EfSFnV;rciv>mo+WGBHB0TB+d*Xw%vd*4>lOt)(W@BfukL5DSITy zD+Kf~25!_NSTn62D)Xq+aW(2bP;JUn<}<2*D!#u&U$7=DMoleeMpIl5npY2rSQDoS zkYvzsV3|Hoi5?0dq2cTqAlf$*)EaE1@0s!Z%M)IpITI~aU5h)bEBsI&5Q%anC96-f z`+$0>O|UOWC~y3WjyVu|A_;gHX4D8s=*^ggsPQ#V#IN(T1Evl3!_xSOul z)ocg2b!02`J;24&I{zVasV#%0oh*WVMocc%Y4&UhWHD&Q&nPfx2G6TZ*HKSm?+xA< zOn3UJOfVp1*p{bZ!)mq`1|gIUmdDntN@&uIQd_8vDw9M#t=Yer^5a!wX;V81+3^Iu z3Iu59k0bnOp;@5g(R~}XS0_?zwLozQM-Z^Y&-F!pH3Wb>iYqGE$q@1yBC$*Lho~)S zSUcgxGWDeu_>nN`Z7n4DCfjDIudV*ADFVNH4paM5pDcg3<|Q6L;l%m!+PDqP51=a5A1!T@=7cnnGFjedTTwl@y2b= z6mm2W8CJKx!mnjqVHA1mynU&#lRBIUM(AZ0h36uTs!X#aQ)P_^n^Bjo>Uf)x0g}~M zLUR}(xieMPpSeFR?@k=lkv+2oS~5bj0RpY^;kD}vm<9gbTxMmkz+gO}q)URaFkpfE z;^odMad1}EnIWM;DKpg8TK0%IBt+jez`z`&%A2kZ!O-$G{ucAlZ_R3`55I{tx|}_O zakBCw_}XTc%*KPST)@sIeqnDnI6GHEy43{LTg(0<4mx@xo#>1fEYPBFBR~YUo=Nzv z=d3q~EQI_!$)++~wETP)aovZ?e1#qUHmefH^rwTpRF-f8DUsSA|HWKp{Y)K4nL0A3 zfuWbQ5s32b0oTT1YEKwowB2tvHC1!nc}m?}osJ}yi(0K@3j-K(6izF%>c~I&V3GF-q$Na8hIYfx-BKSB8F8y2@Lg~el4Hx8t zvzohY9ZEPPDP`p%m58aFpKzC=_6emOx&+Ta3U#hK`b*r#@jZz=u+A?_8&m4Xu=J08 z15$0~Tz`BkF}ErrzmoPM3Z&&K zyw;U@MCm|j8>~=g--dhY{tD$Gn`J-w4Nn|hS&d13Jrk#3nclzeOD#3^OH zS4l`&N$@nx_?L+;QfDxA{^;Ql&AIJ4Im1$S@$j75Zd#RpoM2r z_a2m{()v@%h{tAwn{^H4*%wlhd*Y;|yp~?8|d z_CaBXlt4;b(=nJ*mMOh;LA`qi$U6NH_9E#na%Pks&{H?J<~TRroPQgXR;6YG-$24) zj{33|D7}$66xI999TZLdr@&1L)N7_?kF1JNoRDUvepGe0@;4^01HlC#)HDhE;_>@F zHY%=BhtSTGN+fkTEveMy)_%g+(inr+c$nLee1)9=Yx03y+uxUL^4Q~su7V?qVnCfA z4B@bkuJqS5TXP-RukBL!+$C}#saR=1sr!{`DDY7KwJ%_n5s2O0sj#732A#H3+8NdG zwCNdzPih<$wBpZG!C|9EOq!OF8528`{{w$9v|*?vCgj!48w=a+xpCsfsb@on19fp3ah3Re5o$WtuqFaJj&p%cCIHR?H)JfDfp21+0O8^!}$2 zt@wnaSlie-Qer$J5K0>S<4u%g`-R8gJAJrRfIEOoZ}`yPeQX0zDqdqe7J{5Uu{Jih ziEuAWKqOywg3X8K^g$kKu!S}@|tA`|L#e*2iQ_6U%e4R zt(w@X(LMiv!YFGXuCZA9*;+r|4Kf3qz%Zt!wl#9Y9Y3m)t0^KY1#nsyeJQ+60zC;W z%5RKGm)yA#NzQnrVpg}`2%@F8ZuF!0CN?PcH*a`T>R?%tiLcMR&==-j0cLjdfB5wB z=5U*X7Jl!NjC3^^;??MzPPWCy3>wnwosq;i+X7b!#)AJ!y%95hjX)V>TPXf zA6O-@rlP>JNdo;O`wb+nOOP#)q&0>8Y~6Wl8`0;@Y$x>wNL-D3QgrAE+gTJCd*V;g zH_YU2Hdy)<>PxVL|@EL+yN`~2p3cCH{L*r`R_hq%kn1COByZ8oM=p?Q}Flux0le$X; zIZlwSc`h96W7=Wrtp>pxE?Akm@rEC{dfE^myYU8l3Ov1C9Vk!Rc?w2-dIMe-D-2!N zI|BT>4&SIwy@%P_S8DZng6%~Va3p{ZCeTeq+^Ti)$xs^E&-NrL0r((}#(X zNbEl@v@tLliT`@r*gPn9ZG$A)yo|i`$j#fvHWCU6@UUrr**ZRi(XV~}sY$=J#;yvI zTu!y^<_3Hm6+{wTxtfDk58K(;u;tm`#ocWmqd;V))P1_8?WIaJKq!+ag~@(zPut7* z&zx1^&q5NrTteTy0f4s@VjyV+C}7^_3-vP9c6D3HrpIlb|)D4v51qE=5LmAkka zuXjM4wXNg^^B+X4MCo=*uVywegH>EnAZ_Sni!(Tg@Gv)g{94%9e~FWEW5&<_mUGq6 zx1mR~f96)0BX2HCtlVL?0N2RgHgC3|c-9Qeh@>Y6*eoaoo6v7HxGXyJ<|KBT+7NV$E)fW10>A9 zYyw_y3IBR}ByI3kI_V$84+5nXCkH>MxRZXgu(E{RXijI5;|afo$KxY&Q(#3KO7l|^ zseX%}{OPoh!YrjyDMzaypHmx}=c_!aCycA-qim=CzVaM}^ejDGZ2S|4%y=5_Z2A+c z3><<-yUtsNxN7xxHq!%=>8lci;UmOfF6hY1zo9f`c|-*Dob+QN_4^o6)`d6o{prg0 z2yOUr#3s4>P>Xv006AW>09FTi-&Z_Kc<-tXzvU4UMz>*|73+h?|jD)P!6q{@uzdwiGkbiQzOwY5d)3Y9%FBeoaI3SvekCI|vNSbBy*Gk6t z!D>_AAzWEseJY1%!*)iA%Pb+<$(6j2;~(4(B%4zna21{+;5jf;zo5xnR`$kSpwHVb zeI|cxiPDz95*k8Lb{m^+jOp@O*R$k&i;Xo~qiK+K{W(8V-Q3UNGCiTeNV&u=%s9`E z$giszHnv}h{X2D+(n6o4wD6@a(``%}s91{}?_oQgg~xoUdzLMW$79%~y)SV*m>G-$ z1@Op(9~%tE%d<$@xaB>|YE+X?CF?JH(=Xd4un+}^_xu(SNvVtAzwfgL%4<;pkUsjS z%YhUc0#{w>F^PkcriEW3Mxkt%gdK_|9Wxy^q2jZb{pjMmmjgm(&YCefePT@P>=~1x zcx0S6!j3UBc#U}6vJVgnmX?Bygj;t>K%6n#M16Yh*`(dMi~!F)78ZNl21);*=9Ti)dm^i>%hu-Z`SyT=l#LpaInick4!!6MgO z4&zRcS$Rif009CxWHXvNc33#_4gGpBC7A5*!!{Q7o&?s&kh1o`odPWsu&|aU=r!|)JcyXTJsv8^m0iLoCaTMIO zP6{OZtx@2s*-GPa^`qr$Dr3G(T33$39z-m#aoraH((s2xk3*!=jF*s<*M`Cfu``Ep-cNQez z8cgBq5FQ;5$jqO`e|o%>EGqjW;KQ1H@h2E-Z=n@miZ?aZH8a^4fqRwJDsxJ~1X*y` zRbooVv^rH>nl=pYmLaXy2Dz{x4s?OkV5b^EU5=@2xsat4u2je99S*{OlBM`D3iu`J zMyQqnOlqLx(Ec2?51m|rD1dICsCm2rp|oh9`i$|8T~)?_Sh{dn{iwp$9$G5PGjKYJ z-u_H(yC=V<_NSbUx(l)#o~IXxpG0oC2nBrov8-Ffrob%xbM;9&`D=zhQ!P@2A65AP z>Y+vS;GBi@wgJLjr}(seg`+PVk+G$!jQ%eLF%E&h0?R6 zEcNWeuy?VW@7PslR5>5Rfs#KTPQ}`bn9}hg8iL>X_KpW-7pzj*-oyAn-QQAKUz6YA zOXb?UF~yl&&KUOeHlYOk?oCAp1@q>7>*z;`rDzLy&P;C_zYf&Kb>N7*?&xi7c>o+mjHL^Qe-7XQZ9b@=;T^8 z5c4_nHhgXWI*<)p!2RvpNSv{3vD#Yp8|g}5Jpnh=e(jDS^i!j;>>6k-_+0WK7+0$= zbeCxPZn$#g4!|eh;mDMvBG_R>3m#jLH4U7i;$FD%8ShH%;Z9k5GDgA0_Vwc0!$hO$ zpLfL*#go?3GO*JWnIld{1H{6&eYNg?#e*rjcizCtTGV2T>OT4PqP@$6Z+lh%oPw2a zv3Tqa)QqCQwZeamKBCCBL<$T_ZbjSioSm_;KvY=gUlT{|V{E_1R)ehxhiOAMjtazp z1o{I@+7!3~Lp3M1C|p}GlJBiAeh8U|jq>-wv#Tt>jk+Z4BGRt%%>tBy`z0c8Qq-#| zn;FGa!MmbqUd*`T7eOurz4O=xLBRQHfBszoQ01`Drp6^8StL3ZhX1op^G)AWPw0|m z2(+Ynbj2=g5d_kYDKwBG)~HYL@a+5;zFtq>;O63?ct}fC%SjpsKV~f24uGpSL2ML% zDjZcr!Nqyv$-^ecQp6F#BHnP?zh741fva%V%qwv8R@*GXS|%)**XDTQ-nx4^l!>HbC68q#~Sn^Dm2;@`{81k&ONkAU9x;ya(jwEd!GEZe2faGX<@2z-T zj?USu2Du2Gv0WyrXrc$KeI_|2xJU;D`)xjX35S=$bSH=KqnCIsW^*zWlhEnN8oAUWDMbWx5p%<5 zLj4xqOlMvC;?FljXnwjxDdIW%2GqqWL8RE2hO{cf8Kf0VPBz8TjVwLg2hZ>|tCMA; zOuyBO@Mwommz*QUqcR~CvOS~?f!>-hThe+6UJX*5Y|5xE8tDxHVgV-C@cd^u*(e}0mtEP}E!i~4*cH!aU2KzV z8t`~AUNlsksc0@9u(4UrFs*ETGStsSFFM&7BX}v8l$f;Khq_O2a&(8M(>4Q=O(Ts? zWpSxfoPqT4(K2N3vSaQN%Y=u0YUmmCKroB~#-`NOLgpspN=ZY!G1w3yqIEj55nP-h z5vPbdt4}<%meQxfAdqFqSI&EwJwx_grU-!eQpQBV^T$9aFquC**%WUiwikSB^Rn!w zXDP0yl1=?+K&GB>hOyRGm~851EKa6ln*<8&fmf<~vBDxSV`QPEJImlFpSV0&d+=O{w@2l0b}YmmNGF*_fJ~%fP zmx#izAb7*LyB-AFjkOkC_qT>n;gebr&8=%)MR7IP;d&xx@i_6Tat>?Kep9+o$C#?R zg;UF{)ep#3P*}?+Hw<>(jixz~6!ruz<>ya-8<*W*=<7|6Q;TcS*x!|*G~)5L$Ujnfkw)KP(odN*8UAcd98c_lknMg~kK+NpT?C9z%7e z&cTJa>o{5(d+$rD7yCs}S{+wiD!XkBrBlBnm|*b%;N`UI|CfEpe0&i|pMuNhD|`94 zekfDgR-w@4L6Y;wy$AmwMyOTEdcBB2e;27OGG^(2Bbr_rK?UpA22wS6q zX6Rc2l)hZsg&AnT`(O_w)Ud%4oa-6?5?s3xgny$-Qx=0JbWI2I#eB! zB5`+3oYZ^bihJsB$9-L450#fqG^uc%xCVd+%dO+7xL?4aye>ywmpxvdYW?N9jAM=dwvQmJR6X+BeUvob9!EW&x3gtV^yB?m$fd32&?~xQTg-Xd5kGlrcQj_fC>AD(aaO75LA!6Mk8zLwXklUzPTzL{<=c%hN94GEPYaJC^l<;xJt3&6lgG^QgptBCLcUV+F;J#sRL8m$O$s~9C;!*-G~3Kz-`J)hkH zxl}C+%R~3UsNG)&)8|iG&U;3pw4)~@sp{!Kdy}gHIq)%M&ef4U(&Z~Df z8r>Po{XdLNhlW`?(b8v;#o?nOz{Z{e$7c8I*8=G0qLa8IGshpE))Y%Jd4Dp)o%k^4 zc`y+B@sl+f0Zu`>OF`MMfBI6(C(zIPGuuEt!;Vnt@so9OW5>H0W$BN7{iybE5a@^z zlch#iT}wu)P`F5DA!o9&kP6I5HUX0ipjN}s`M9C*eYJWLuE>{)P9oFu7+5y&`dwA} ze3+#@JvG8IymCEeB56+|Iwxub)_G|JR)U(((X?p9GG2Efj%Uag8`~j}7$k~&uaDnC zFM_C>HrsH79fVl9%**h{pWKW`z#eN58a(xdiQ^=F>eVCbS!Ra6iK z>|Ml;ilAe!prE1%h^XLG^PiNUlR6ANmZB}$4h#)c-**fIGhrt0@Q z`!WoeysY=WFY8+?hCAn;d+I*BpS=Sx2v*l3npLJcpdRx2o$eZ8_-14ivK+%n-)U@x z0;B~%Ox(Ndb6^%1EyDW@agoPw@ziw3Th?uHh^rTRs}b$RfO*EX7CpEufjPL|;Ov}qlD>Ti_%7IUOu@M4=31oJAcT*}R zU`t|(pojxte(!St4ZrVZ8i`lxO4fj0k$m1L%wim&NB^g>HJ;ZE zgSY+qZAO8`fJH+ox2Z{#gMtOiSUJR7-1SD*9U)&Ig@@rzbaA{%C|rQJgDLF_&x2$A?MBn=;un4nrk48@!>~VnF9Gv6ayE(eV+XUiMMl@s zE~e?C0Rh90tVV;lZJ;_^m?&WltVID^aS;91o4W0TpnT~1ZmsMQr0286 z{TRP8y3120roj5JdoZU0WK~#;cyYo+HgLYoFk`K{%z}flMY@tbhj?h>*gvcGk$tlG zC}(}kZoQn2$>9(?wDEaNdJDjAZ5G4;M!g1hE!5F^kcrelX*G{VBVNA~;fn{M$&qMmS~Ky?ZAFnQ~Bo zjM%s_d84(KehV_aivnKVHvLz4$rG6;#o6vd{N6gS4(s1!Y6o*{8#(TtJH(jHD~(TyF$%NE+FQn0JPT$P z$z9<_@|#fzEP!8;GFC@&(`87U8)a%sCHgBNG^7p76vAJc!=K3IgL?rG-2P*<;42)S zkkZS*4As9Ft@w>Rnk`G80^o=3$1cA5tI>qQI$|Tw*{anDmILP!$kxS_hG*94KN96Q2YBZM1Hk@D&Vqu}r%-1HE$(-LQ|+^^%b zB`~-Ja%@VuV3Rux7!yyxsV=D<8tPiY=#pv8rCUfGCoUGqxfg;(oMrh#CpzxH=K=fP zgrqgbq3DCxpl39rD1LSeH}ya{16FEFQxcwe`rxIKMLBNmi(quJKF~wcT0Nrbqy2~u z+HD+$stmI=P9}FeGo{Er!k(M#yZrG(V+WLrW2}rmWo!(c$>$7ED)$k>;-kQy@~I$q z&P8MsF`Eh?X)C@JAtkTAqh2dG4~8;nJ#3malMs1#{U^qOLS4nd9)oCZlu6JLUYI_` zAS}So-gG|v2X7@~h^YYCh4&!mX=xMACB)c-(TAWfa?wkk;8RT70h~EyMpx0VNO8hB z(t^&p;fmB$KV0XU`ZI$RQ;yd!F+#D2{)yWxg$TCJm$sJ}?+F*EKq~nR z(wvbt4{R~x+u+Z!>y@7kl!GX9J5!4<`TC+g-zc5}P5`GjsXce;Cm*C^Ri&c83XRY6RHH zH5-iWRJH@L=>k+1POdV$v3PIuLv)sT7>bjnuei_W< z>T@vg^c}d=h0ZU1MXR(W>Z<^0`Opm2cDMGgz$!f>xCiph8_bbnzI|3sd|}OpdM4O3*IKe^8z2!Is9SJTQSNc z*wgEwCcuoy^vOgwPQzG3pklB5X|po&^U|`@=cN@0X-XV4dE7R=CWbzF-zeB((U9!? zKnFAU>8oRqjrl1NzNC)kGIYz;Mm7uDxL(<-DTW9;v0fvPPil9>!a`tnq=z}eyaNMP z_&2x^bMd|^Wr!p$q07Nu_r7E7Cwi?aMQ!8DZ}0buX#f&$!nX)T0=PmE^@^gJOhe5nu5 zpq)ZT2GzqjR8JmO02A5)ki7cJ2VQ1|^-4Vx0EUwN>s7cHZ3s+7)hEU~(S_k~&*)tS zEbn&1hV??^4Q<@{Ffh&K4sW(m!9Wal;b9yw^p3>|rq7d^9p@8o^l7Rk)7iQ+CzfGa zb3kjiXZbE577nQ)1a+z0=Ltv2amSc=*yt=Gp7@yrrQrhRL@KX&Vn02r`Mw4c%eSJq z1Gq?3afS0$s8Ootlm z&Q9@`K4-i|2f~rjiJRRr46?@aPeKG67Wtf(j-3Y;gh0`iB{FJS!xuAHw1BJ>ASM_{ z-I|&NMuPGQAs}*%S`LQm^&?;U12nak*G~6Z55`sW=Tk<#b6RfZ zv}}siJc~q6?ExiB!MeDbR-<#V()95t&M^f%)I^2&H#@K%iu<_Ti%%4+aRt8 z0Ou?vRY&=bQ%qjwZS>&QSS`bskwcH++G-ms zFEzvZVkedwcygVtF=9b&KltDSaIan9=Goz_%J-HlO%%1(1u%Ja5xr0aQ+sMS1vqS)suWGm{J_+64 zw`qs`XliGPRULBK1P@IcRSHobnZ;n{T=0^f^m8TOJ!8;*w+kzSnEgc+)){K))m=s* z7;_CK7A5_V9OInXC{$_!D&@j#J+u*Ghw0dn99-2$uqpZ6Q9Yaf_+BiN2J43mFD${e zd(9|JKcDu(Bp==Zj!WLup;n9&nr*ikSs7^@f0J3w3~vuOCcPZ1CM(Cv%NKqUii*C= z^4;W|A6+1d=e}W-(4bBHBCj(n7`MU~RI*-Dtw6}4q4iT4^Z zC2ahcnJ-nbyQ&QCNPmy~cC0V<^40fn zp>BpW+Fq{lfu>Ae3bCdqOif@FcP-Mxf8K`j17x>o@RoJIkv-={#^;zl{4Ync_Fk+S zdAP7OnU&Yx8=xFtl7cK0GgFw^1*;QDZ&_50j^MN*Sh-M>)~4BFpM*X)CSjlmJ-4`r zc#feO9~L&5zT|dh-Gd#ONEIAmftOgST8RZSDW zz?R-8l+}A;b$!w^X5`GskK}l%DyPQ%t?tX*Dsu;(%}t`+CCyDn{9!dt&DSjHvRGhz zoAIt#Y+2h?ujyV-BFkmtIt9Y8(1nh4U`uQ27=z|aD zg;!Xi$Og5g`&pu7gW3nJnCIj}Xd{HRvSQ6XHzzrKwI`g|=RL`i6y_d6e}=ouHP9`t(hF$QZgT0{7h22z7w>?xm zDL24jwX6Y{-=Z&{Bf2%xMAqS!l+1!)isSa0EzRQ*r2GZJR zv6oP@w)CDkGi%|3+4W^-aSsOPstG0a+5h^!R`^9&CHBR&Nr>4uG z+`$L#gn&H(^x8e6PBd7DiD6+CxKqHoE@%3*I{L{Fd|(;V5*8Z0p)Nv2MlCr_k&|}n z+H&2dWF9N;JRkVJ=UiQ6`C9==oB}LyR-vb39JnGrOsnrRK?7K`nCVLGeo_e(j3e~m zB~`;NcF-GJht5<%GlHQD#4Spdfi52~iW^l7?3=$pZ9CGrrRq1)L7b}cKG2O3A`h@6 z5@u7byXALdGoh*%$s ztUX~4Ss%nl-j;SnM}u21<*@0nJ*mY8bjM1W(|78)AAunGO2i%Tg5Q6vo@D_&HcP3K zY)bIbv{lE&29mMKdX1o?Op}nX3Z7kC)bIrY(wRb^8fg+5BbyD$MeybDi4o-IW*@eg z@YV0I=z($xn=fFF*@C z&pMgv*OvLKI+=Jg`~!BKg`CMeXxtW?Qj?NDf1t((woCqvKV+VS8#}*Fjp-w962+Ao zN1_upX$sLmZkn#wh<#bN8?<2eCp&cX@PW!838K;tYBA~wgehtW1Np&7(*`^@u&;Hc z{YmVG0N`QsvX)-#YGPZApn0ZNrT`T}SW5piPBn6hX;y56G2tsi3JZT2JZ^p?PLEvW z(iV0t?d!(r=t?koz6+*hg9B|K!`BG`^5&!NSX!H4C3q&g&<4^Y3FTf@h?@`XEk1*4uf6yqAV|m?a@XVT8es|G!v=lK6cNP(84{r$Rwk@6 zo>7zk$+zFpLQ&HG5-;T7ORT~HdW)0g^LhaKpXZtP7OrHjjOuWdp{i@CUZ_6*1k2)L zSUy>B59*Mat5U>F5#$T(8ZMNq)mqm%=&e0JD_LSFc~jqi2+Lv1lpurXx+l;ADr- zPy-wCd9iJd3ytJbt2;A}yl8A})i*^x6#ZEy%+NP?kg2Dt$Y*4;`g`LP(QE^C>}f|f zBm%FuqAEwm@ytJ_A7_S#2h~_+4J3=TLFMi&x!G82H)`T!s*Sdb+a969UITD@(U_>N zOAAWzGzp{e--!*sUSqwT4b?PO9cF^V7pv(m7?#+=ko})tTAGx!qSm{i+o0kAHg42r z-@^Jw$brk;nbOyhte^L>{|2Te#8aNty$V*>Fjt6_@=fIZ+u&}3x2F@9hRCz}=`_p< z2+S!QQ6Mrn=0H8X=&p`ts5&uQ>+-%t4^4Yj#8e--gC6VeAeh#1o6igKCG@wW*U&^< zsh<5O2>-?r>^;e=yYL&>e)`IYVZey?u$M_7NuK*NQA|4+`dUZ8cQh_CS4+#kS{hl0 z{)Nnp=^*-f1O4uN6a%hj z-m5qu1w)JXD!gh|s^;|)2#pI?Zss^1XgY*)Ho%?CJMNsT&tyZ+jJX+5`YqtU;_z&M z?7-1S?Om+j$f?J8X53ie*2h}kzJ((|0H9S7<$<9_ zt7|ZN3lFft*x|vnngd$c`tYH!^##JxY+r+`n>m5e6?kik7}=gwUW#am4<#rMOV+A+ z&;*486@Zdpi#iVx4iGP0sMiLL3c`ELt5Wj}#{{%D?`b$ExCxxwaOy(^!kENTT-AmG z;Z0(%xMn4XwP0+-P04Et*lr~vOu^`@E&cY#Mq8^sg5!d;32xH8*A)mG0hUNeAoh0J zZY~gxv-WlXA$l5D!UN^y>b0hzSG^jZR8~^ZTC^dyryTd>g&h-@QdVJtJ9nNF0xy4u zxjE6Q@#EY`yQV{B%fuDH-v(?NPd zBovOOm`;+=fCBN=M$A0hQ5r|D_JsDUr0~Z0FUR}zUZ5ZD(@{+f3~alZIgyg4IkK`<&*PQG^K(T zP=E@TDp|L@pC(>)cm|?Ign&}1HLZP866ANslhQDCNs;SpwR92B2i8dK2-aZX(gIJY zSk1gH=zTt)q;?`zR;Zstc+9Z;m zaR$+qlF*~u++KX>-b(2-3J$K4?&FWJ?Ggw7$Ss!oQLnYq6_kdQz@;)Jr_fzKe>4H+ zB9@kNW{0#%Bk<^CS#u=;0#fR-!U(ZBTFRDjHUkez zf`Ggx;~wpfgOX4lGX#{p%SY4>r19@b!rH`6kPIH4!}{USEi1>dNIfXEq7+4nkk!H; zHeo`d5Fa!E92Y9zAZ60_@kiXKKq~Yi;EY1`CtOARDOd))Fis7sJ5U158P3j2(u@W# zPw(YzTk$%dQXAm%#1c>ub4tS>+Zshv_yOKf29U4=z)ouqFo4)5+>eUa;LOB)z{toB z+gw`o0i%1sb{q{~E~U`vx1O;3a;G4)eU@gQmbnYKY zwaOgM_31*clGIH_BbfuiiD2FPQP^I-du$uQGg}&@duj{sbHbwY|SeOOMM##tueUqm$LcEMsy<*(Wr+eit7(u zi;)ol*S*~O=giB+aa%wMo1bh+i;@uZx!*2VzAV>;5;s2?LMM`Nef7I!L|?@Hu-4SF z4ML@h7xLBsH%&jf5o2pFB?R|HzAPLQNVnS*x|Oz?UEA%@4Lx9Bi^j!AzWag;7r1#A z2jPg1iYzzmA5cE z8*%g0S2-~lV2joHwQH3U3tzNjF<3vI`q|cSN~TfIK8vd(VkTo_alMDTdomX8#1Rog zYDf81ER=5i!ac4qj7n#}pms*7aX8HU;+K(yE2+D7zVD{jaGmqx-H2tVr8AX8jlTt!wzA!PYfw>#v(tzrnxRr~0oW+9LR< zZHxHsQ2p`0)V8pXx_y%FG$==Y>=>-2x;YI-FW2o$SiR+GuqA&Pm3?0t zbfTyF`=S%q$0F&YQH5H7p1Op&&i1}ids)fg6~f|1+t@-_#cym z9M34V>Y~(Iu1H8kCXmSAC9l$7At2XQR!akZ;7A$*yUHm85@AK3cR^Z-I^Y(;l)MYg zM(9N@sH+0&$}b>Fr#_V?3eHqZnf+kRh6-C(>QL-N!#aM;%H@~PYZN1Lv=$MdHI2Q}HL9|VgF2#Zd z?)@E{YTP4<{hew}31OOIXE|(mqUr>tB{3s(>MR#GPedq?-H&)Y-gl(V_R>v(#o%z% z&|TXRI&aHjR22&<{4&MHan&mKL|B3ozqE}IYgm5*>g$7FN<-~SS=LK@QgRB!EaDUs zNetg2TDBP-Xzd+o2MX#Ih^F0?;!(i!#Iq}%zS$5ssOT=Iz7r|saHUG>B-#^KnZ(rT z;x`gv*w%LzA zXmP)awwXJ!*VEDVt0Dl*Rd8)DYKm*=8mQn^sTXy0C>AOQ+wOED{r4&<6rkbxJ-C7Q zZZ(8Ddh|KC0XsC~r=AvlA@x+tkdhuk^c}#_M@OL2-AOXQ3^&CUg^Gn8N5wk2bLro~Rheg5t&(ru^WWIGTG;4fPw4$u34VmsKcTi^tHdE19L6I@=f8FoE! zVmxv|BkSOYfqCX>9=ABOvbSTRM#zUO4&rVk0?yV*^F$_3H!627MmR$tKo@d;zwSl~FLdf~{2bSCb9xtlkGx!WV9|4(qT5?9pRmusBy@L{7B)9)_86kI(Da zdy>$zhB*}*=-$`TOg!`QO6R4;c(&onNJ{ua>TG+t_Yam}?C^V|3X`)Rh{R8&zUt4q z9i;Lz5P!38Kn%3k1lYm;ulq_`fDW<$9jMDWNnCHi zP7S2W(>xG6^66N`lD>VtYFvuNx#GpdGgM`+#jI=-axPQl)DHzvhX2mU1t_5{1^*6g zQ~W!N=Z{m{5oe{T>N42?#D_jR3rfpN*I=FD@bn{NeFj@BGV)XXhr>qIf$gSU#jMB^ zNMEcJe(N^fEf!*39rBm^B-PQqx`h)EB<^bnGEJ2~KtK)rnhzrP#Rc=e=3`dZ7e#!> zk)L=ep8QT4A{J55+CAShGs0p8XS1=~DmsamNX8RLdVi_09RE!xY;T*rRxkr?vfXLR z?V=dv*ZW2N5b*xZCF2mgVv1I|^<&Z3h__Te&|9vAzC%kbvl<~tt%KBuYHlJ%DKp0W zGvyXy6W04#@U1IlK15{Nx-vQLhru|rawtfStuTe3z$kNo9tejX0OHpkEpeB7Ant%4 z>CRYfJ+IP91GrPnf}cf?b{)P}?-$)-E>E72*GZ$3O+!0_qpPSXLiCOEMOr!H zRwr;C+8>GF&>&dv6-}np2#_hh>G?%XQFGz_IC(&F67AI& zHBq*?Ny`y$A zv^JK;!}(6UUvs{w6?F@h=Kpn<{ptIAMLF`UA)TRzdBzbOEGDH@Fo}+cSRjNfz)~Gd z_$!I$iyk_wp*f2eErm>mgGyxV@RK$yBG<`1LqGpE+Zsl->Q4nPQ zs%*CEW+}`u?8;c2g?<7vj6z|`XDubT$d&p`GRDiNS~~y+Dkm9*GQl2NKkCJ(N>}3VwH> zK7%;MKA5R6ab*vtq1P89DMmkN7ED76`qF@*1wsY6e<-XI<@vaP^NXZB;r57CIFA<2Tcj@SqdU^vu8l zAs*FMh-&bzDxqK<3eeGc{9)(HWwEUKWn{iT29#{Yw|VL%U3tc_E}G8v-_$k^tP8)M z6DQ5JzmSJs=mIyCx({hotQ3UyMVqCuwr_+Jx*U0~L6h>NYh5%+wDQ|LEe)Lsr-$AP z3j**ZN5|ect6((J&g&8U;&dwFQat%Wjv9JM&h_)xI5}oc&!Q{tfsIALr^b#@717?t z@#-&{+WnL(jk&qQN4yLrP6{fjISgGuSCZWt@iz_$3#h$^0#$~1lQO&R2mF85xx2U^ z2!(K(+&vvJSkf~%JU%a(_YACiC@ZzVOSB+t zADEE1g=%|trsXp@lNk>nd%!6d>X=`Ut9~9sf6U-#b`dDP1IFvFIxpNl4yDwY09yCq zf0kqIo>;6A^P-QlHaBZ>a_RGLCvx zAs#&k(?Q)hdZVf+N}Mv*`spa}Mh_8&~eT3}MhteqQ8>sm=eQs4x86Q4sn? zksCc07xkgkGese` zb}M#8J2@uwOMH9)qMY2mED|bgF#x%Ed=N;{_pbHF&xM}y@d-g1anexFU$d01L>3RE z^-ElRl>wo}9XzP(1h;mOtnx3Aw0V%TCQ|veCjW;x8ac$hu^V4wjBGuPV%IHfyezc& zLi}5#gf?H?qnATePlW!2QFh7H#hqQ$ib}=Q#kk}aMdsOyJL_vd=0DRiDWNlLSyinT zdMV$|UX0uA&5x`^%1m0kiYtS6%u$+fXu^Y@Q zscCP^NUCVu-iyk6YY{nCZyraf-vnrBds{1b&zxf9b9!^I7XF*&PigJDGvO6b6zW9J zl$xhfMSLmZ(2%);9(tKqQ{1}E$S-;K1{_KfEHEa%Y7U_2ul$hca)K{7@NQ;Y+HG!j zrX!opS#&AhjA+kW%^_6w(OyK}jDKBA@5$!YRDNeRG84*X3&rPe)RLEMhTUAesCdsC zfuGhkg6Zm_xs~|VQwiK*PH>`AQc0k);sx_64c+UT35)J1bDHwqE_0!VzIH`y(C>rH zEgdrew9T%WJ5fo1*^NTdEa1s^n-_3-^*&Gdy0vSfquXhg7E}^!c5zP-VRUdaAR?c# zK8C3xCCsdI=0d8PYY8LmhsD0MXPX%rz6-+xT(i>?vq3({XB=!1CFF~!d?9A%zkDEP zTRh2mu>}{W-D0(F7*xH_!W}yJmwM;8yDVtfPn|!4p9tFt#&!6V2$VF{}AJg6@ z<|ultv&GqMKw|%fMNP>ou$!9_`pEoUEFEkTvI?Bb%RvCinXMAP|1ffj`|lNPz?66{Pg&FE4dm9FWF)KUP_BTmRTA~ zZuXpu{WK{!O&@9yMc3Sxq$^m_iX8M_`IEU9rD(fA*4Www!FT&xHa}h^{3UY>@)%?p zLVdUCfTwHgMFTvG-IPCvSoXoC#Rp5gN{NI)I{`~t`J1`95|?6`?LyOX06bpaqO0C% zIzV%P8x<88t{AI@Aw z#{ieQlgcOQ^bhUef&Esd7p0_Ga8WbBjLWR)9ifj)v!E;h$3~iNakC$`I1dDb4PWCA zxwh0gz>ay97LMi}T4n#Q#j~_37EawWP$X(~w8n)ZDey5%FmIWT0qePk1b*3RH1w9!8a#V{xYS**K)Y9F2g`OGD^% zvR+56qrH(~eWqm3ulow$5nv)SKO4)qR#v{#*NX`x)qwM1+Fca2@|jnypM z_q>Z-jC+CZG$qe+{PDRl8m+^Mr91qAJErTMX-Y0myzB??={wfVhwk(?2S3&nQll=g zZ09-t?;FiMsgF?77FpIgJpS!}yV!NJq1>Vy?sD;~P8t{GH=|{+BTf0d8}fml$9~x; zv4twmVI`~mt)5DOr@61|Kf!xA#R#~YmWI<+ZSLhn`vc6O0{C?Q{|-XAr-!rXH{TBG z-rM?nQ*|DQMon+vhSxfp-ITW*nY;SY%^ll)DCD7=9V2WfS=R&t^9Q9`+LmFCrZCU9 z;U@k0OO0slO!G71r$0%)dOZ~%9Dwl2YcRp$X%;t{($1VG-XeI!suzJ~yv>0WKEfQJ zycuJ@-}(Qkr>ci75j637ER<9^K%4Kj9N{FKG zj&x#$MJvDM;sXve{ApmyyDNZ4N4uZFC3o?&YdMZ_|DZDn?=615w%h_w*7ZO*Q7bJ7 zHoMZIr=Oafsr~lsN(6b|w9?Ylb!@_@#DspsseSNu+^iR0My|rUF&%5G>QjcK3`p)j zZD8_nFfJV^%@;4qpGM=RRaoj5Z1t#Y6~28U7{f_j4&*jGc?8|>cm{Wt(WdLT#Nh+_ zCybImZLYy3KYXqu&(-MWi*9HQ_2KQX0{EzpDEsaUI5grbSDLdLGi=e_Ht030u>e=T ziGtFsVwuHR*}K|O;7F6!Ssp4ct+!+&Cd^^*134S<(L07fg!g^>B@g-3tz?KQsXr<( zeP*D|q?wiwC3TZ!lr|$WzDK+GNpbDEPl=A6JUND++C-x?qpmnAKFVaT)~2pn^gmUL zj;_}L&EEzJ)_04=X~5utqr!Xl32)sl9!=uExasJ!Jv!$;;&Sk-Yu&E`F`Tq^Gi?Pt zy69*!%RsQ$>r?dG4vT??ZUx&nY=gz!pWAFUd2*ZBs7X^NPhK!33bpSqOl?HlmNfIA z)#a^p^xU(S@0Gc8tz9(AAM32IIw(n}Ebh3RaL@{NOrVwNfmSW9-z?~a$QbF?03|NW zT7YQh=PbydbpcGumbTcSn?GA-m40GHB#aB-ZScQ9<>XDv4~|NCwFSvVQlhOv)@yU^;Qd~@A$QbU!c z*2Z)pQtwGsp5cv@f}brPVQ898jk!shmx)0i+5k}?-D9?5JRn=}s(@C|A?1 zL&2YlsR`bB52zfQD~eDAQ6 z#!acbXF2I;|3n$2v8Fhv6Blcxyz67V;y|e_tsTVxyy*Eid;qh%%8@MLWOJw>Vyt>4 zvZwXkC?(UwszGYpXe%5;8!p*$C+m2$Sz*Ni!D|H#pL9@~JhZfPR5177u|Vf7twBev zffU=`noq@V_w`mxuGUxT&sy@b_H0$hWrTSDs3Y)v5)zyT}?tRfX0ZFtJuAWzRJ(TSytrZAZ_GcKx;ShkjH9$%uj-m)Hcq-S%Egen8Sv?8c`!O60A+O&?HI(Luj&@qjsy-^md z94Rkr>RPXG@7c1J^?v$%^7v0bI`n;+p0X#oxhn%cDob;&SNpM#@e_&Lzb^}{SLMHH z&|eAF%k!P;Rs6qeOTplB|DhRl-&ncii&RBao;FYW|J-^H>+|4v)}%8{#ODgV|SPyblv z`){p%&7HE)e`{RN{#Mri-x^oh=Vk8y*4n?Qk(>Tob2Pik7wWa80Mi}R)H?_G9Y9^9 z7kJhy<3qZCXIW6aGGGgTT6HC$nG&$8EW!P6-nfxwXIWmo7ZpmuDLEsNSo zR@R>!HhC7so*j=&=Est~Dcx(h@3Qnx!@fe{r@km~VEMVJ4LC+YKoKF`cl6BO!O>z`% zpFRvyMOd;IEo_tAS*`MRo8)5k300cXN8$qSPve~^Bx8&(9W5Izr>_OhwhC9(KVFpk2#hYG+k(BLgh^BY* zCm_;dQ@p@WJq3gtTGL$*!$f*==NKOf9*b5UwKO1YUsHoS%^NTrX)4!=DZGOrj}CS)xRA>VL(@$Ili>HQ#|%)zMU=-i_b>Ek>>bD%#XjS z>1qh3KkncnR{;%O z``W&|{b0;fblJf+0RH^s?QzJ(htK7zm}o>rFfon?)Re+UDw{@K8+!S=TrOs>pMxI_1|y3JI24R^ST+;R=)XQ z%+vNM)fOJVJuaet3+uWY2GVN@1}$CFB|))NInkMndnbC(D|fJE+pdp7vY{S0d&3_L zcNf6d82JTN7&E zx(r}Irybo5&1qLpLsPoso9v>(tL+S!JEZvkQx8yOFUZKF^6rKfY7>zUMj@+qkwN!Q zU(wZRhAIF3xW@2d`MYub?V0+gG5#5Ea8=%kHz1^Qp9Dh>+R@9q-t@;5 z9F3nR8G2FR!_iR9*NpO_du{M7*4>-7PqBT5pF?Qo6d>d9X*jq~p9b-8|9K*muenKX zGf|5GQ*(L4ar%M-&&}VCbcG?Ss1U^44lCHJ}KVRXcpS$pKnhG6xF@erR3!O=`P4zm#PNav921U?&?EKwrmU)@a4YXIyPRBI058!mKP4-Jb{a z+hLxeGs)QocU}LS^tv&x%K;rr%?5GWl?`Gc^+|E2(j2kpqHN{l5qd(E78IO=xBQfp zgJa20k|-;mF&;{g=Gfo(2{?(lIT*(NKSuLsO=)>|fQs5j9;$511)V$j`f$)*fqZIK zwgIN)Wmo$Yb#CMs0{>DcG8bq2@egO@Vw{f^de+jA+Re3hJz+iuTlxBM`19Gjo;=@x zfRelf=vw|07~Py-Rbg{k)R)+8V1w6F*pjBzBafi zKYeLf7(l^`M$JM1z^g27ik1n5`5J(kO6XKRhRTC7cYU02)driver = $driver; @@ -127,7 +132,11 @@ final class CodeCoverage */ public function getReport(): Directory { - return (new Builder($this->analyser()))->build($this); + if ($this->cachedReport === null) { + $this->cachedReport = (new Builder($this->analyser()))->build($this); + } + + return $this->cachedReport; } /** @@ -135,9 +144,18 @@ final class CodeCoverage */ public function clear(): void { - $this->currentId = null; - $this->data = new ProcessedCodeCoverageData; - $this->tests = []; + $this->currentId = null; + $this->data = new ProcessedCodeCoverageData; + $this->tests = []; + $this->cachedReport = null; + } + + /** + * @internal + */ + public function clearCache(): void + { + $this->cachedReport = null; } /** @@ -202,6 +220,8 @@ final class CodeCoverage $this->currentId = $id; $this->driver->start(); + + $this->cachedReport = null; } /** @@ -220,7 +240,8 @@ final class CodeCoverage $data = $this->driver->stop(); $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed); - $this->currentId = null; + $this->currentId = null; + $this->cachedReport = null; return $data; } @@ -245,6 +266,8 @@ final class CodeCoverage throw new TestIdMissingException; } + $this->cachedReport = null; + $this->applyFilter($rawData); $this->applyExecutableLinesFilter($rawData); @@ -312,6 +335,8 @@ final class CodeCoverage $this->data->merge($that->data); $this->tests = array_merge($this->tests, $that->getTests()); + + $this->cachedReport = null; } public function enableCheckForUnintentionallyCoveredCode(): void @@ -673,7 +698,9 @@ final class CodeCoverage if ($this->cachesStaticAnalysis()) { $this->analyser = new CachingFileAnalyser( $this->cacheDirectory, - $this->analyser + $this->analyser, + $this->useAnnotationsForIgnoringCode, + $this->ignoreDeprecatedCode ); } diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php index 75c731bb..d80ab4de 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Clover.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Clover.php @@ -16,6 +16,7 @@ use function is_string; use function ksort; use function max; use function range; +use function strpos; use function time; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; @@ -243,7 +244,9 @@ final class Clover $buffer = $xmlDocument->saveXML(); if ($target !== null) { - Filesystem::createDirectory(dirname($target)); + if (!strpos($target, '://') !== false) { + Filesystem::createDirectory(dirname($target)); + } if (@file_put_contents($target, $buffer) === false) { throw new WriteOperationFailedException($target); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php b/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php index 0d1dde76..ead31b46 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Cobertura.php @@ -16,6 +16,7 @@ use function file_put_contents; use function preg_match; use function range; use function str_replace; +use function strpos; use function time; use DOMImplementation; use SebastianBergmann\CodeCoverage\CodeCoverage; @@ -294,7 +295,9 @@ final class Cobertura $buffer = $document->saveXML(); if ($target !== null) { - Filesystem::createDirectory(dirname($target)); + if (!strpos($target, '://') !== false) { + Filesystem::createDirectory(dirname($target)); + } if (@file_put_contents($target, $buffer) === false) { throw new WriteOperationFailedException($target); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php index 91f8ed59..2d91567a 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php +++ b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php @@ -15,6 +15,7 @@ use function file_put_contents; use function htmlspecialchars; use function is_string; use function round; +use function strpos; use DOMDocument; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; @@ -124,7 +125,9 @@ final class Crap4j $buffer = $document->saveXML(); if ($target !== null) { - Filesystem::createDirectory(dirname($target)); + if (!strpos($target, '://') !== false) { + Filesystem::createDirectory(dirname($target)); + } if (@file_put_contents($target, $buffer) === false) { throw new WriteOperationFailedException($target); diff --git a/vendor/phpunit/php-code-coverage/src/Report/PHP.php b/vendor/phpunit/php-code-coverage/src/Report/PHP.php index ccb104ce..1f8186d0 100644 --- a/vendor/phpunit/php-code-coverage/src/Report/PHP.php +++ b/vendor/phpunit/php-code-coverage/src/Report/PHP.php @@ -12,6 +12,7 @@ namespace SebastianBergmann\CodeCoverage\Report; use function dirname; use function file_put_contents; use function serialize; +use function strpos; use SebastianBergmann\CodeCoverage\CodeCoverage; use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; use SebastianBergmann\CodeCoverage\Util\Filesystem; @@ -20,11 +21,15 @@ final class PHP { public function process(CodeCoverage $coverage, ?string $target = null): string { + $coverage->clearCache(); + $buffer = " 'UNKNOWN', // PHPUnit_Runner_BaseTestRunner::STATUS_UNKNOWN 0 => 'PASSED', // PHPUnit_Runner_BaseTestRunner::STATUS_PASSED diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php index 00a6d8df..6f8a0449 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php @@ -20,7 +20,9 @@ final class CacheWarmer new ParsingFileAnalyser( $useAnnotationsForIgnoringCode, $ignoreDeprecatedCode - ) + ), + $useAnnotationsForIgnoringCode, + $ignoreDeprecatedCode, ); foreach ($filter->files() as $file) { diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php index f53da078..63e6e22b 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php @@ -29,27 +29,39 @@ final class CachingFileAnalyser implements FileAnalyser */ private static $cacheVersion; + /** + * @var string + */ + private $directory; + /** * @var FileAnalyser */ private $analyser; + /** + * @var bool + */ + private $useAnnotationsForIgnoringCode; + + /** + * @var bool + */ + private $ignoreDeprecatedCode; + /** * @var array */ private $cache = []; - /** - * @var string - */ - private $directory; - - public function __construct(string $directory, FileAnalyser $analyser) + public function __construct(string $directory, FileAnalyser $analyser, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode) { Filesystem::createDirectory($directory); - $this->analyser = $analyser; - $this->directory = $directory; + $this->analyser = $analyser; + $this->directory = $directory; + $this->useAnnotationsForIgnoringCode = $useAnnotationsForIgnoringCode; + $this->ignoreDeprecatedCode = $ignoreDeprecatedCode; } public function classesIn(string $filename): array @@ -161,7 +173,20 @@ final class CachingFileAnalyser implements FileAnalyser private function cacheFile(string $filename): string { - return $this->directory . DIRECTORY_SEPARATOR . md5($filename . "\0" . file_get_contents($filename) . "\0" . self::cacheVersion()); + $cacheKey = md5( + implode( + "\0", + [ + $filename, + file_get_contents($filename), + self::cacheVersion(), + $this->useAnnotationsForIgnoringCode, + $this->ignoreDeprecatedCode, + ] + ) + ); + + return $this->directory . DIRECTORY_SEPARATOR . $cacheKey; } private static function cacheVersion(): string diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php index 794084ff..eadff1cf 100644 --- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php +++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php @@ -101,6 +101,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract $node instanceof Node\Stmt\Else_ || $node instanceof Node\Stmt\EnumCase || $node instanceof Node\Stmt\Finally_ || + $node instanceof Node\Stmt\GroupUse || $node instanceof Node\Stmt\Label || $node instanceof Node\Stmt\Namespace_ || $node instanceof Node\Stmt\Nop || diff --git a/vendor/phpunit/php-code-coverage/src/Version.php b/vendor/phpunit/php-code-coverage/src/Version.php index 20e8e550..cd471b41 100644 --- a/vendor/phpunit/php-code-coverage/src/Version.php +++ b/vendor/phpunit/php-code-coverage/src/Version.php @@ -22,7 +22,7 @@ final class Version public static function id(): string { if (self::$version === null) { - self::$version = (new VersionId('9.2.26', dirname(__DIR__)))->getVersion(); + self::$version = (new VersionId('9.2.28', dirname(__DIR__)))->getVersion(); } return self::$version; diff --git a/vendor/phpunit/phpunit/ChangeLog-9.6.md b/vendor/phpunit/phpunit/ChangeLog-9.6.md index 5995d581..bbe94625 100644 --- a/vendor/phpunit/phpunit/ChangeLog-9.6.md +++ b/vendor/phpunit/phpunit/ChangeLog-9.6.md @@ -2,6 +2,31 @@ All notable changes of the PHPUnit 9.6 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [9.6.12] - 2023-09-12 + +### Changed + +* [#5508](https://github.com/sebastianbergmann/phpunit/pull/5508): Generate code coverage report in PHP format as first in list to avoid serializing cache data + +## [9.6.11] - 2023-08-19 + +### Added + +* [#5478](https://github.com/sebastianbergmann/phpunit/pull/5478): `assertObjectHasProperty()` and `assertObjectNotHasProperty()` + +## [9.6.10] - 2023-07-10 + +### Changed + +* [#5419](https://github.com/sebastianbergmann/phpunit/pull/5419): Allow empty `` element in XML configuration + +## [9.6.9] - 2023-06-11 + +### Fixed + +* [#5405](https://github.com/sebastianbergmann/phpunit/issues/5405): XML configuration migration does not migrate `whitelist/file` elements +* Always use `X.Y.Z` version number (and not just `X.Y`) of PHPUnit's version when checking whether a PHAR-distributed extension is compatible + ## [9.6.8] - 2023-05-11 ### Fixed @@ -64,6 +89,10 @@ All notable changes of the PHPUnit 9.6 release series are documented in this fil * [#5064](https://github.com/sebastianbergmann/phpunit/issues/5064): Deprecate `PHPUnit\Framework\TestCase::getMockClass()` * [#5132](https://github.com/sebastianbergmann/phpunit/issues/5132): Deprecate `Test` suffix for abstract test case classes +[9.6.12]: https://github.com/sebastianbergmann/phpunit/compare/9.6.11...9.6.12 +[9.6.11]: https://github.com/sebastianbergmann/phpunit/compare/9.6.10...9.6.11 +[9.6.10]: https://github.com/sebastianbergmann/phpunit/compare/9.6.9...9.6.10 +[9.6.9]: https://github.com/sebastianbergmann/phpunit/compare/9.6.8...9.6.9 [9.6.8]: https://github.com/sebastianbergmann/phpunit/compare/9.6.7...9.6.8 [9.6.7]: https://github.com/sebastianbergmann/phpunit/compare/9.6.6...9.6.7 [9.6.6]: https://github.com/sebastianbergmann/phpunit/compare/9.6.5...9.6.6 diff --git a/vendor/phpunit/phpunit/DEPRECATIONS.md b/vendor/phpunit/phpunit/DEPRECATIONS.md new file mode 100644 index 00000000..b8349592 --- /dev/null +++ b/vendor/phpunit/phpunit/DEPRECATIONS.md @@ -0,0 +1,89 @@ +# Deprecations + +## Soft Deprecations + +This functionality is currently [soft-deprecated](https://phpunit.de/backward-compatibility.html#soft-deprecation): + +### Writing Tests + +#### Test Double API + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|-----------------------------------|-------|-------------| +| [#3687](https://github.com/sebastianbergmann/phpunit/issues/3687) | `MockBuilder::setMethods()` | 8.3.0 | | +| [#3687](https://github.com/sebastianbergmann/phpunit/issues/3687) | `MockBuilder::setMethodsExcept()` | 9.6.0 | | + +## Hard Deprecations + +This functionality is currently [hard-deprecated](https://phpunit.de/backward-compatibility.html#hard-deprecation): + +### Writing Tests + +#### Assertions, Constraints, and Expectations + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|------------------------------------------------|-------|---------------------------------------------------| +| [#4062](https://github.com/sebastianbergmann/phpunit/issues/4062) | `TestCase::assertNotIsReadable()` | 9.1.0 | `TestCase::assertIsNotReadable()` | +| [#4065](https://github.com/sebastianbergmann/phpunit/issues/4065) | `TestCase::assertNotIsWritable()` | 9.1.0 | `TestCase::assertIsNotWritable()` | +| [#4068](https://github.com/sebastianbergmann/phpunit/issues/4068) | `TestCase::assertDirectoryNotExists()` | 9.1.0 | `TestCase::assertDirectoryDoesNotExist()` | +| [#4071](https://github.com/sebastianbergmann/phpunit/issues/4071) | `TestCase::assertDirectoryNotIsReadable()` | 9.1.0 | `TestCase::assertDirectoryIsNotReadable()` | +| [#4074](https://github.com/sebastianbergmann/phpunit/issues/4074) | `TestCase::assertDirectoryNotIsWritable()` | 9.1.0 | `TestCase::assertDirectoryIsNotWritable()` | +| [#4077](https://github.com/sebastianbergmann/phpunit/issues/4077) | `TestCase::assertFileNotExists()` | 9.1.0 | `TestCase::assertFileDoesNotExist()` | +| [#4080](https://github.com/sebastianbergmann/phpunit/issues/4080) | `TestCase::assertFileNotIsReadable()` | 9.1.0 | `TestCase::assertFileIsNotReadable()` | +| [#4083](https://github.com/sebastianbergmann/phpunit/issues/4083) | `TestCase::assertFileNotIsWritable()` | 9.1.0 | `TestCase::assertFileIsNotWritable()` | +| [#4086](https://github.com/sebastianbergmann/phpunit/issues/4086) | `TestCase::assertRegExp()` | 9.1.0 | `TestCase::assertMatchesRegularExpression()` | +| [#4089](https://github.com/sebastianbergmann/phpunit/issues/4089) | `TestCase::assertNotRegExp()` | 9.1.0 | `TestCase::assertDoesNotMatchRegularExpression()` | +| [#4091](https://github.com/sebastianbergmann/phpunit/issues/4091) | `TestCase::assertEqualXMLStructure()` | 9.1.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectDeprecation()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectDeprecationMessage()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectDeprecationMessageMatches()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectError()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectErrorMessage()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectErrorMessageMatches()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectNotice()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectNoticeMessage()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectNoticeMessageMatches()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectWarning()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectWarningMessage()` | 9.6.0 | | +| [#5062](https://github.com/sebastianbergmann/phpunit/issues/5062) | `TestCase::expectWarningMessageMatches()` | 9.6.0 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertClassHasAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertClassNotHasAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertClassHasStaticAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertClassNotHasStaticAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertObjectHasAttribute()` | 9.6.1 | `TestCase::assertObjectHasProperty()` | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::assertObjectNotHasAttribute()` | 9.6.1 | `TestCase::assertObjectNotHasProperty()` | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::classHasAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::classHasStaticAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `TestCase::objectHasAttribute()` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `ClassHasAttribute` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `ClassHasStaticAttribute` | 9.6.1 | | +| [#4601](https://github.com/sebastianbergmann/phpunit/issues/4601) | `ObjectHasAttribute` | 9.6.1 | `ObjectHasProperty` | + +#### Test Double API + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|---------------------------------------|-------|-------------------------------------------------------------------------| +| [#4141](https://github.com/sebastianbergmann/phpunit/issues/4141) | `TestCase::prophesize()` | 9.1.0 | [phpspec/prophecy-phpunit](https://github.com/phpspec/prophecy-phpunit) | +| [#4297](https://github.com/sebastianbergmann/phpunit/issues/4297) | `TestCase::at()` | 9.3.0 | | +| [#4297](https://github.com/sebastianbergmann/phpunit/issues/4297) | `InvokedAtIndex` | 9.3.0 | | +| [#5063](https://github.com/sebastianbergmann/phpunit/issues/5063) | `InvocationMocker::withConsecutive()` | 9.6.0 | | +| [#5063](https://github.com/sebastianbergmann/phpunit/issues/5063) | `ConsecutiveParameters` | 9.6.0 | | +| [#5064](https://github.com/sebastianbergmann/phpunit/issues/5064) | `TestCase::getMockClass()` | 9.6.0 | | + +#### Miscellaneous + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|----------------------------------------------|-------|------------------------------------------------| +| [#5132](https://github.com/sebastianbergmann/phpunit/issues/5132) | `Test` suffix for abstract test case classes | | | +| | `TestCase::$backupGlobalsBlacklist` | 9.3.0 | `TestCase::$backupGlobalsExcludeList` | +| | `TestCase::$backupStaticAttributesBlacklist` | 9.3.0 | `TestCase::$backupStaticAttributesExcludeList` | + +### Extending PHPUnit + +| Issue | Description | Since | Replacement | +|-------------------------------------------------------------------|--------------------------------------|-------|-------------------------------------------------------------| +| [#4676](https://github.com/sebastianbergmann/phpunit/issues/4676) | `TestListener` | 8.0.0 | [Event System](https://docs.phpunit.de/en/10.3/events.html) | +| [#4039](https://github.com/sebastianbergmann/phpunit/issues/4039) | `Command::handleLoader()` | 9.1.0 | | +| [#4039](https://github.com/sebastianbergmann/phpunit/issues/4039) | `TestSuiteLoader` | 9.1.0 | | +| [#4039](https://github.com/sebastianbergmann/phpunit/issues/4039) | `StandardTestSuiteLoader` | 9.1.0 | | +| [#4676](https://github.com/sebastianbergmann/phpunit/issues/4676) | `TestListenerDefaultImplementation` | 8.2.4 | [Event System](https://docs.phpunit.de/en/10.3/events.html) | diff --git a/vendor/phpunit/phpunit/README.md b/vendor/phpunit/phpunit/README.md index ffc8bf32..c561c594 100644 --- a/vendor/phpunit/phpunit/README.md +++ b/vendor/phpunit/phpunit/README.md @@ -25,7 +25,7 @@ Alternatively, you may use [Composer](https://getcomposer.org/) to download and ## Contribute -Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects. +Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/main/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects. ## List of Contributors diff --git a/vendor/phpunit/phpunit/composer.json b/vendor/phpunit/phpunit/composer.json index 28411d9b..42e16c6f 100644 --- a/vendor/phpunit/phpunit/composer.json +++ b/vendor/phpunit/phpunit/composer.json @@ -33,7 +33,7 @@ "myclabs/deep-copy": "^1.10.1", "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", diff --git a/vendor/phpunit/phpunit/phpunit.xsd b/vendor/phpunit/phpunit/phpunit.xsd index 7fa2f6b6..619434ef 100644 --- a/vendor/phpunit/phpunit/phpunit.xsd +++ b/vendor/phpunit/phpunit/phpunit.xsd @@ -57,7 +57,7 @@ - + diff --git a/vendor/phpunit/phpunit/src/Framework/Assert.php b/vendor/phpunit/phpunit/src/Framework/Assert.php index 9872b25c..8724fae7 100644 --- a/vendor/phpunit/phpunit/src/Framework/Assert.php +++ b/vendor/phpunit/phpunit/src/Framework/Assert.php @@ -73,6 +73,7 @@ use PHPUnit\Framework\Constraint\LogicalOr; use PHPUnit\Framework\Constraint\LogicalXor; use PHPUnit\Framework\Constraint\ObjectEquals; use PHPUnit\Framework\Constraint\ObjectHasAttribute; +use PHPUnit\Framework\Constraint\ObjectHasProperty; use PHPUnit\Framework\Constraint\RegularExpression; use PHPUnit\Framework\Constraint\SameSize; use PHPUnit\Framework\Constraint\StringContains; @@ -111,14 +112,14 @@ abstract class Assert if (!(is_int($key) || is_string($key))) { throw InvalidArgumentException::create( 1, - 'integer or string' + 'integer or string', ); } if (!(is_array($array) || $array instanceof ArrayAccess)) { throw InvalidArgumentException::create( 2, - 'array or ArrayAccess' + 'array or ArrayAccess', ); } @@ -142,19 +143,19 @@ abstract class Assert if (!(is_int($key) || is_string($key))) { throw InvalidArgumentException::create( 1, - 'integer or string' + 'integer or string', ); } if (!(is_array($array) || $array instanceof ArrayAccess)) { throw InvalidArgumentException::create( 2, - 'array or ArrayAccess' + 'array or ArrayAccess', ); } $constraint = new LogicalNot( - new ArrayHasKey($key) + new ArrayHasKey($key), ); static::assertThat($array, $constraint, $message); @@ -191,7 +192,7 @@ abstract class Assert public static function assertNotContains($needle, iterable $haystack, string $message = ''): void { $constraint = new LogicalNot( - new TraversableContainsIdentical($needle) + new TraversableContainsIdentical($needle), ); static::assertThat($haystack, $constraint, $message); @@ -220,9 +221,9 @@ abstract class Assert $haystack, new TraversableContainsOnly( $type, - $isNativeType + $isNativeType, ), - $message + $message, ); } @@ -238,9 +239,9 @@ abstract class Assert $haystack, new TraversableContainsOnly( $className, - false + false, ), - $message + $message, ); } @@ -261,10 +262,10 @@ abstract class Assert new LogicalNot( new TraversableContainsOnly( $type, - $isNativeType - ) + $isNativeType, + ), ), - $message + $message, ); } @@ -290,7 +291,7 @@ abstract class Assert static::assertThat( $haystack, new Count($expectedCount), - $message + $message, ); } @@ -314,7 +315,7 @@ abstract class Assert } $constraint = new LogicalNot( - new Count($expectedCount) + new Count($expectedCount), ); static::assertThat($haystack, $constraint, $message); @@ -369,7 +370,7 @@ abstract class Assert { $constraint = new IsEqualWithDelta( $expected, - $delta + $delta, ); static::assertThat($actual, $constraint, $message); @@ -384,7 +385,7 @@ abstract class Assert public static function assertNotEquals($expected, $actual, string $message = ''): void { $constraint = new LogicalNot( - new IsEqual($expected) + new IsEqual($expected), ); static::assertThat($actual, $constraint, $message); @@ -399,7 +400,7 @@ abstract class Assert public static function assertNotEqualsCanonicalizing($expected, $actual, string $message = ''): void { $constraint = new LogicalNot( - new IsEqualCanonicalizing($expected) + new IsEqualCanonicalizing($expected), ); static::assertThat($actual, $constraint, $message); @@ -414,7 +415,7 @@ abstract class Assert public static function assertNotEqualsIgnoringCase($expected, $actual, string $message = ''): void { $constraint = new LogicalNot( - new IsEqualIgnoringCase($expected) + new IsEqualIgnoringCase($expected), ); static::assertThat($actual, $constraint, $message); @@ -431,8 +432,8 @@ abstract class Assert $constraint = new LogicalNot( new IsEqualWithDelta( $expected, - $delta - ) + $delta, + ), ); static::assertThat($actual, $constraint, $message); @@ -446,7 +447,7 @@ abstract class Assert static::assertThat( $actual, static::objectEquals($expected, $method), - $message + $message, ); } @@ -506,7 +507,7 @@ abstract class Assert static::assertThat( $actual, static::greaterThanOrEqual($expected), - $message + $message, ); } @@ -562,7 +563,7 @@ abstract class Assert static::assertFileExists($actual, $message); $constraint = new IsEqualCanonicalizing( - file_get_contents($expected) + file_get_contents($expected), ); static::assertThat(file_get_contents($actual), $constraint, $message); @@ -598,7 +599,7 @@ abstract class Assert static::assertFileExists($actual, $message); $constraint = new LogicalNot( - new IsEqual(file_get_contents($expected)) + new IsEqual(file_get_contents($expected)), ); static::assertThat(file_get_contents($actual), $constraint, $message); @@ -617,7 +618,7 @@ abstract class Assert static::assertFileExists($actual, $message); $constraint = new LogicalNot( - new IsEqualCanonicalizing(file_get_contents($expected)) + new IsEqualCanonicalizing(file_get_contents($expected)), ); static::assertThat(file_get_contents($actual), $constraint, $message); @@ -636,7 +637,7 @@ abstract class Assert static::assertFileExists($actual, $message); $constraint = new LogicalNot( - new IsEqualIgnoringCase(file_get_contents($expected)) + new IsEqualIgnoringCase(file_get_contents($expected)), ); static::assertThat(file_get_contents($actual), $constraint, $message); @@ -702,7 +703,7 @@ abstract class Assert static::assertFileExists($expectedFile, $message); $constraint = new LogicalNot( - new IsEqual(file_get_contents($expectedFile)) + new IsEqual(file_get_contents($expectedFile)), ); static::assertThat($actualString, $constraint, $message); @@ -720,7 +721,7 @@ abstract class Assert static::assertFileExists($expectedFile, $message); $constraint = new LogicalNot( - new IsEqualCanonicalizing(file_get_contents($expectedFile)) + new IsEqualCanonicalizing(file_get_contents($expectedFile)), ); static::assertThat($actualString, $constraint, $message); @@ -738,7 +739,7 @@ abstract class Assert static::assertFileExists($expectedFile, $message); $constraint = new LogicalNot( - new IsEqualIgnoringCase(file_get_contents($expectedFile)) + new IsEqualIgnoringCase(file_get_contents($expectedFile)), ); static::assertThat($actualString, $constraint, $message); @@ -1227,9 +1228,9 @@ abstract class Assert static::assertThat( $className, new LogicalNot( - new ClassHasAttribute($attributeName) + new ClassHasAttribute($attributeName), ), - $message + $message, ); } @@ -1257,7 +1258,7 @@ abstract class Assert static::assertThat( $className, new ClassHasStaticAttribute($attributeName), - $message + $message, ); } @@ -1285,9 +1286,9 @@ abstract class Assert static::assertThat( $className, new LogicalNot( - new ClassHasStaticAttribute($attributeName) + new ClassHasStaticAttribute($attributeName), ), - $message + $message, ); } @@ -1304,7 +1305,7 @@ abstract class Assert */ public static function assertObjectHasAttribute(string $attributeName, $object, string $message = ''): void { - self::createWarning('assertObjectHasAttribute() is deprecated and will be removed in PHPUnit 10. Refactor your test to use assertObjectHasProperty() (PHPUnit 10.1.0+) instead.'); + self::createWarning('assertObjectHasAttribute() is deprecated and will be removed in PHPUnit 10. Refactor your test to use assertObjectHasProperty() instead.'); if (!self::isValidObjectAttributeName($attributeName)) { throw InvalidArgumentException::create(1, 'valid attribute name'); @@ -1317,7 +1318,7 @@ abstract class Assert static::assertThat( $object, new ObjectHasAttribute($attributeName), - $message + $message, ); } @@ -1334,7 +1335,7 @@ abstract class Assert */ public static function assertObjectNotHasAttribute(string $attributeName, $object, string $message = ''): void { - self::createWarning('assertObjectNotHasAttribute() is deprecated and will be removed in PHPUnit 10. Refactor your test to use assertObjectNotHasProperty() (PHPUnit 10.1.0+) instead.'); + self::createWarning('assertObjectNotHasAttribute() is deprecated and will be removed in PHPUnit 10. Refactor your test to use assertObjectNotHasProperty() instead.'); if (!self::isValidObjectAttributeName($attributeName)) { throw InvalidArgumentException::create(1, 'valid attribute name'); @@ -1347,9 +1348,39 @@ abstract class Assert static::assertThat( $object, new LogicalNot( - new ObjectHasAttribute($attributeName) + new ObjectHasAttribute($attributeName), ), - $message + $message, + ); + } + + /** + * Asserts that an object has a specified property. + * + * @throws ExpectationFailedException + */ + final public static function assertObjectHasProperty(string $propertyName, object $object, string $message = ''): void + { + static::assertThat( + $object, + new ObjectHasProperty($propertyName), + $message, + ); + } + + /** + * Asserts that an object does not have a specified property. + * + * @throws ExpectationFailedException + */ + final public static function assertObjectNotHasProperty(string $propertyName, object $object, string $message = ''): void + { + static::assertThat( + $object, + new LogicalNot( + new ObjectHasProperty($propertyName), + ), + $message, ); } @@ -1372,7 +1403,7 @@ abstract class Assert static::assertThat( $actual, new IsIdentical($expected), - $message + $message, ); } @@ -1393,9 +1424,9 @@ abstract class Assert static::assertThat( $actual, new LogicalNot( - new IsIdentical($expected) + new IsIdentical($expected), ), - $message + $message, ); } @@ -1421,7 +1452,7 @@ abstract class Assert static::assertThat( $actual, new IsInstanceOf($expected), - $message + $message, ); } @@ -1447,9 +1478,9 @@ abstract class Assert static::assertThat( $actual, new LogicalNot( - new IsInstanceOf($expected) + new IsInstanceOf($expected), ), - $message + $message, ); } @@ -1466,7 +1497,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_ARRAY), - $message + $message, ); } @@ -1483,7 +1514,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_BOOL), - $message + $message, ); } @@ -1500,7 +1531,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_FLOAT), - $message + $message, ); } @@ -1517,7 +1548,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_INT), - $message + $message, ); } @@ -1534,7 +1565,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_NUMERIC), - $message + $message, ); } @@ -1551,7 +1582,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_OBJECT), - $message + $message, ); } @@ -1568,7 +1599,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_RESOURCE), - $message + $message, ); } @@ -1585,7 +1616,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_CLOSED_RESOURCE), - $message + $message, ); } @@ -1602,7 +1633,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_STRING), - $message + $message, ); } @@ -1619,7 +1650,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_SCALAR), - $message + $message, ); } @@ -1636,7 +1667,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_CALLABLE), - $message + $message, ); } @@ -1653,7 +1684,7 @@ abstract class Assert static::assertThat( $actual, new IsType(IsType::TYPE_ITERABLE), - $message + $message, ); } @@ -1670,7 +1701,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_ARRAY)), - $message + $message, ); } @@ -1687,7 +1718,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_BOOL)), - $message + $message, ); } @@ -1704,7 +1735,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_FLOAT)), - $message + $message, ); } @@ -1721,7 +1752,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_INT)), - $message + $message, ); } @@ -1738,7 +1769,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_NUMERIC)), - $message + $message, ); } @@ -1755,7 +1786,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_OBJECT)), - $message + $message, ); } @@ -1772,7 +1803,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_RESOURCE)), - $message + $message, ); } @@ -1789,7 +1820,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_CLOSED_RESOURCE)), - $message + $message, ); } @@ -1806,7 +1837,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_STRING)), - $message + $message, ); } @@ -1823,7 +1854,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_SCALAR)), - $message + $message, ); } @@ -1840,7 +1871,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_CALLABLE)), - $message + $message, ); } @@ -1857,7 +1888,7 @@ abstract class Assert static::assertThat( $actual, new LogicalNot(new IsType(IsType::TYPE_ITERABLE)), - $message + $message, ); } @@ -1900,9 +1931,9 @@ abstract class Assert static::assertThat( $string, new LogicalNot( - new RegularExpression($pattern) + new RegularExpression($pattern), ), - $message + $message, ); } @@ -1923,9 +1954,9 @@ abstract class Assert static::assertThat( $string, new LogicalNot( - new RegularExpression($pattern) + new RegularExpression($pattern), ), - $message + $message, ); } @@ -1961,7 +1992,7 @@ abstract class Assert static::assertThat( $actual, new SameSize($expected), - $message + $message, ); } @@ -1997,9 +2028,9 @@ abstract class Assert static::assertThat( $actual, new LogicalNot( - new SameSize($expected) + new SameSize($expected), ), - $message + $message, ); } @@ -2025,9 +2056,9 @@ abstract class Assert static::assertThat( $string, new LogicalNot( - new StringMatchesFormatDescription($format) + new StringMatchesFormatDescription($format), ), - $message + $message, ); } @@ -2044,9 +2075,9 @@ abstract class Assert static::assertThat( $string, new StringMatchesFormatDescription( - file_get_contents($formatFile) + file_get_contents($formatFile), ), - $message + $message, ); } @@ -2064,10 +2095,10 @@ abstract class Assert $string, new LogicalNot( new StringMatchesFormatDescription( - file_get_contents($formatFile) - ) + file_get_contents($formatFile), + ), ), - $message + $message, ); } @@ -2096,9 +2127,9 @@ abstract class Assert static::assertThat( $string, new LogicalNot( - new StringStartsWith($prefix) + new StringStartsWith($prefix), ), - $message + $message, ); } @@ -2168,9 +2199,9 @@ abstract class Assert static::assertThat( $string, new LogicalNot( - new StringEndsWith($suffix) + new StringEndsWith($suffix), ), - $message + $message, ); } @@ -2335,7 +2366,7 @@ abstract class Assert static::assertSame( $expectedElement->tagName, $actualElement->tagName, - $message + $message, ); if ($checkAttributes) { @@ -2346,8 +2377,8 @@ abstract class Assert '%s%sNumber of attributes on node "%s" does not match', $message, !empty($message) ? "\n" : '', - $expectedElement->tagName - ) + $expectedElement->tagName, + ), ); for ($i = 0; $i < $expectedElement->attributes->length; $i++) { @@ -2363,8 +2394,8 @@ abstract class Assert $message, !empty($message) ? "\n" : '', $expectedAttribute->name, - $expectedElement->tagName - ) + $expectedElement->tagName, + ), ); } } @@ -2380,8 +2411,8 @@ abstract class Assert '%s%sNumber of child nodes of "%s" differs', $message, !empty($message) ? "\n" : '', - $expectedElement->tagName - ) + $expectedElement->tagName, + ), ); for ($i = 0; $i < $expectedElement->childNodes->length; $i++) { @@ -2389,7 +2420,7 @@ abstract class Assert $expectedElement->childNodes->item($i), $actualElement->childNodes->item($i), $checkAttributes, - $message + $message, ); } } @@ -2449,9 +2480,9 @@ abstract class Assert static::assertThat( $actualJson, new LogicalNot( - new JsonMatches($expectedJson) + new JsonMatches($expectedJson), ), - $message + $message, ); } @@ -2489,9 +2520,9 @@ abstract class Assert static::assertThat( $actualJson, new LogicalNot( - new JsonMatches($expectedJson) + new JsonMatches($expectedJson), ), - $message + $message, ); } @@ -2513,7 +2544,7 @@ abstract class Assert static::assertJson($actualJson, $message); $constraintExpected = new JsonMatches( - $expectedJson + $expectedJson, ); $constraintActual = new JsonMatches($actualJson); @@ -2540,7 +2571,7 @@ abstract class Assert static::assertJson($actualJson, $message); $constraintExpected = new JsonMatches( - $expectedJson + $expectedJson, ); $constraintActual = new JsonMatches($actualJson); @@ -2721,7 +2752,7 @@ abstract class Assert { return static::logicalOr( new IsEqual($value), - new GreaterThan($value) + new GreaterThan($value), ); } @@ -2779,7 +2810,7 @@ abstract class Assert { return static::logicalOr( new IsEqual($value), - new LessThan($value) + new LessThan($value), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php index 5b8c50ed..2005cfde 100644 --- a/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php +++ b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php @@ -1444,6 +1444,42 @@ if (!function_exists('PHPUnit\Framework\assertObjectNotHasAttribute')) { } } +if (!function_exists('PHPUnit\Framework\assertObjectHasProperty')) { + /** + * Asserts that an object has a specified property. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws Exception + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @see Assert::assertObjectHasProperty + */ + function assertObjectHasProperty(string $attributeName, object $object, string $message = ''): void + { + Assert::assertObjectHasProperty(...func_get_args()); + } +} + +if (!function_exists('PHPUnit\Framework\assertObjectNotHasProperty')) { + /** + * Asserts that an object does not have a specified property. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws Exception + * + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + * + * @see Assert::assertObjectNotHasProperty + */ + function assertObjectNotHasProperty(string $attributeName, object $object, string $message = ''): void + { + Assert::assertObjectNotHasProperty(...func_get_args()); + } +} + if (!function_exists('PHPUnit\Framework\assertSame')) { /** * Asserts that two variables have the same type and value. @@ -2927,7 +2963,7 @@ if (!function_exists('PHPUnit\Framework\atLeast')) { function atLeast(int $requiredInvocations): InvokedAtLeastCountMatcher { return new InvokedAtLeastCountMatcher( - $requiredInvocations + $requiredInvocations, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php index 8e27fbfd..ff04a698 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/Count.php @@ -40,7 +40,7 @@ class Count extends Constraint { return sprintf( 'count matches %d', - $this->expectedCount + $this->expectedCount, ); } @@ -76,7 +76,7 @@ class Count extends Constraint throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } } @@ -136,7 +136,7 @@ class Count extends Constraint return sprintf( 'actual size %d matches expected size %d', (int) $this->getCountOf($other), - $this->expectedCount + $this->expectedCount, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php index e6371d53..ee01e93d 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Cardinality/IsEmpty.php @@ -64,7 +64,7 @@ final class IsEmpty extends Constraint '%s %s %s', strpos($type, 'a') === 0 || strpos($type, 'o') === 0 ? 'an' : 'a', $type, - $this->toString() + $this->toString(), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php index 5f772b4d..37548e56 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php @@ -93,9 +93,8 @@ abstract class Constraint implements Countable, SelfDescribing /** * Throws an exception for the given compared value and test description. * - * @param mixed $other evaluated value or object - * @param string $description Additional information about the test - * @param ComparisonFailure $comparisonFailure + * @param mixed $other evaluated value or object + * @param string $description Additional information about the test * * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException * @throws ExpectationFailedException @@ -106,7 +105,7 @@ abstract class Constraint implements Countable, SelfDescribing { $failureDescription = sprintf( 'Failed asserting that %s.', - $this->failureDescription($other) + $this->failureDescription($other), ); $additionalFailureDescription = $this->additionalFailureDescription($other); @@ -121,7 +120,7 @@ abstract class Constraint implements Countable, SelfDescribing throw new ExpectationFailedException( $failureDescription, - $comparisonFailure + $comparisonFailure, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php index 6a61ebfb..d209444b 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqual.php @@ -61,8 +61,6 @@ final class IsEqual extends Constraint * failure. * * @throws ExpectationFailedException - * - * @return bool */ public function evaluate($other, string $description = '', bool $returnResult = false): ?bool { @@ -78,7 +76,7 @@ final class IsEqual extends Constraint try { $comparator = $comparatorFactory->getComparatorFor( $this->value, - $other + $other, ); $comparator->assertEquals( @@ -86,7 +84,7 @@ final class IsEqual extends Constraint $other, $this->delta, $this->canonicalize, - $this->ignoreCase + $this->ignoreCase, ); } catch (ComparisonFailure $f) { if ($returnResult) { @@ -95,7 +93,7 @@ final class IsEqual extends Constraint throw new ExpectationFailedException( trim($description . "\n" . $f->getMessage()), - $f + $f, ); } @@ -118,21 +116,21 @@ final class IsEqual extends Constraint return sprintf( "is equal to '%s'", - $this->value + $this->value, ); } if ($this->delta != 0) { $delta = sprintf( ' with delta <%F>', - $this->delta + $this->delta, ); } return sprintf( 'is equal to %s%s', $this->exporter()->export($this->value), - $delta + $delta, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php index 57bb91ca..b87dadad 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualCanonicalizing.php @@ -58,7 +58,7 @@ final class IsEqualCanonicalizing extends Constraint try { $comparator = $comparatorFactory->getComparatorFor( $this->value, - $other + $other, ); $comparator->assertEquals( @@ -66,7 +66,7 @@ final class IsEqualCanonicalizing extends Constraint $other, 0.0, true, - false + false, ); } catch (ComparisonFailure $f) { if ($returnResult) { @@ -75,7 +75,7 @@ final class IsEqualCanonicalizing extends Constraint throw new ExpectationFailedException( trim($description . "\n" . $f->getMessage()), - $f + $f, ); } @@ -96,13 +96,13 @@ final class IsEqualCanonicalizing extends Constraint return sprintf( "is equal to '%s'", - $this->value + $this->value, ); } return sprintf( 'is equal to %s', - $this->exporter()->export($this->value) + $this->exporter()->export($this->value), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php index d657e96a..3642da21 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualIgnoringCase.php @@ -58,7 +58,7 @@ final class IsEqualIgnoringCase extends Constraint try { $comparator = $comparatorFactory->getComparatorFor( $this->value, - $other + $other, ); $comparator->assertEquals( @@ -66,7 +66,7 @@ final class IsEqualIgnoringCase extends Constraint $other, 0.0, false, - true + true, ); } catch (ComparisonFailure $f) { if ($returnResult) { @@ -75,7 +75,7 @@ final class IsEqualIgnoringCase extends Constraint throw new ExpectationFailedException( trim($description . "\n" . $f->getMessage()), - $f + $f, ); } @@ -96,13 +96,13 @@ final class IsEqualIgnoringCase extends Constraint return sprintf( "is equal to '%s'", - $this->value + $this->value, ); } return sprintf( 'is equal to %s', - $this->exporter()->export($this->value) + $this->exporter()->export($this->value), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php index 4f106b1e..f7d8aced 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Equality/IsEqualWithDelta.php @@ -62,13 +62,13 @@ final class IsEqualWithDelta extends Constraint try { $comparator = $comparatorFactory->getComparatorFor( $this->value, - $other + $other, ); $comparator->assertEquals( $this->value, $other, - $this->delta + $this->delta, ); } catch (ComparisonFailure $f) { if ($returnResult) { @@ -77,7 +77,7 @@ final class IsEqualWithDelta extends Constraint throw new ExpectationFailedException( trim($description . "\n" . $f->getMessage()), - $f + $f, ); } @@ -94,7 +94,7 @@ final class IsEqualWithDelta extends Constraint return sprintf( 'is equal to %s with delta <%F>', $this->exporter()->export($this->value), - $this->delta + $this->delta, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php index 860c0030..bbaab4af 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/Exception.php @@ -36,7 +36,7 @@ final class Exception extends Constraint { return sprintf( 'exception of type "%s"', - $this->className + $this->className, ); } @@ -73,13 +73,13 @@ final class Exception extends Constraint 'exception of type "%s" matches expected exception "%s"%s', get_class($other), $this->className, - $message + $message, ); } return sprintf( 'exception of type "%s" is thrown', - $this->className + $this->className, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php index b8054a94..a6fad4c7 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionCode.php @@ -61,7 +61,7 @@ final class ExceptionCode extends Constraint return sprintf( '%s is equal to expected exception code %s', $this->exporter()->export($other->getCode()), - $this->exporter()->export($this->expectedCode) + $this->exporter()->export($this->expectedCode), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php index 030beff9..5139e720 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessage.php @@ -65,14 +65,14 @@ final class ExceptionMessage extends Constraint if ($this->expectedMessage === '') { return sprintf( "exception message is empty but is '%s'", - $other->getMessage() + $other->getMessage(), ); } return sprintf( "exception message '%s' contains '%s'", $other->getMessage(), - $this->expectedMessage + $this->expectedMessage, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php index fd0db1c8..bc737709 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception/ExceptionMessageRegularExpression.php @@ -48,7 +48,7 @@ final class ExceptionMessageRegularExpression extends Constraint if ($match === false) { throw new \PHPUnit\Framework\Exception( - "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'" + "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'", ); } @@ -68,7 +68,7 @@ final class ExceptionMessageRegularExpression extends Constraint return sprintf( "exception message '%s' matches '%s'", $other->getMessage(), - $this->expectedMessageRegExp + $this->expectedMessageRegExp, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php index ef4b2baf..24268c7d 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/DirectoryExists.php @@ -48,7 +48,7 @@ final class DirectoryExists extends Constraint { return sprintf( 'directory "%s" exists', - $other + $other, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php index 41b3136e..6cae9502 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/FileExists.php @@ -48,7 +48,7 @@ final class FileExists extends Constraint { return sprintf( 'file "%s" exists', - $other + $other, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php index e33d7e04..12436938 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsReadable.php @@ -48,7 +48,7 @@ final class IsReadable extends Constraint { return sprintf( '"%s" is readable', - $other + $other, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php index 93981224..8da02076 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Filesystem/IsWritable.php @@ -48,7 +48,7 @@ final class IsWritable extends Constraint { return sprintf( '"%s" is writable', - $other + $other, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php index fde43d9e..f36d44e7 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php @@ -62,7 +62,7 @@ final class IsIdentical extends Constraint $this->value, $other, sprintf("'%s'", $this->value), - sprintf("'%s'", $other) + sprintf("'%s'", $other), ); } @@ -72,7 +72,7 @@ final class IsIdentical extends Constraint $this->value, $other, $this->exporter()->export($this->value), - $this->exporter()->export($other) + $this->exporter()->export($other), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php index 23a4de7e..54de688c 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php @@ -37,7 +37,7 @@ final class JsonMatches extends Constraint { return sprintf( 'matches JSON string "%s"', - $this->value + $this->value, ); } @@ -69,9 +69,8 @@ final class JsonMatches extends Constraint /** * Throws an exception for the given compared value and test description. * - * @param mixed $other evaluated value or object - * @param string $description Additional information about the test - * @param ComparisonFailure $comparisonFailure + * @param mixed $other evaluated value or object + * @param string $description Additional information about the test * * @throws \PHPUnit\Framework\Exception * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException @@ -100,7 +99,7 @@ final class JsonMatches extends Constraint Json::prettify($recodedValue), Json::prettify($recodedOther), false, - 'Failed asserting that two json values are equal.' + 'Failed asserting that two json values are equal.', ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php index a873ceae..40e1d614 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasAttribute.php @@ -40,7 +40,7 @@ class ClassHasAttribute extends Constraint { return sprintf( 'has attribute "%s"', - $this->attributeName + $this->attributeName, ); } @@ -59,7 +59,7 @@ class ClassHasAttribute extends Constraint throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -79,7 +79,7 @@ class ClassHasAttribute extends Constraint '%sclass "%s" %s', is_object($other) ? 'object of ' : '', is_object($other) ? get_class($other) : $other, - $this->toString() + $this->toString(), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php index 538cbf08..bd5eefe4 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ClassHasStaticAttribute.php @@ -28,7 +28,7 @@ final class ClassHasStaticAttribute extends ClassHasAttribute { return sprintf( 'has static attribute "%s"', - $this->attributeName() + $this->attributeName(), ); } @@ -51,7 +51,7 @@ final class ClassHasStaticAttribute extends ClassHasAttribute throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php index 30f3a330..b837b4cd 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php @@ -65,7 +65,7 @@ final class ObjectEquals extends Constraint if (!$object->hasMethod($this->method)) { throw new ComparisonMethodDoesNotExistException( get_class($other), - $this->method + $this->method, ); } @@ -75,7 +75,7 @@ final class ObjectEquals extends Constraint if (!$method->hasReturnType()) { throw new ComparisonMethodDoesNotDeclareBoolReturnTypeException( get_class($other), - $this->method + $this->method, ); } @@ -84,28 +84,28 @@ final class ObjectEquals extends Constraint if (!$returnType instanceof ReflectionNamedType) { throw new ComparisonMethodDoesNotDeclareBoolReturnTypeException( get_class($other), - $this->method + $this->method, ); } if ($returnType->allowsNull()) { throw new ComparisonMethodDoesNotDeclareBoolReturnTypeException( get_class($other), - $this->method + $this->method, ); } if ($returnType->getName() !== 'bool') { throw new ComparisonMethodDoesNotDeclareBoolReturnTypeException( get_class($other), - $this->method + $this->method, ); } if ($method->getNumberOfParameters() !== 1 || $method->getNumberOfRequiredParameters() !== 1) { throw new ComparisonMethodDoesNotDeclareExactlyOneParameterException( get_class($other), - $this->method + $this->method, ); } @@ -114,7 +114,7 @@ final class ObjectEquals extends Constraint if (!$parameter->hasType()) { throw new ComparisonMethodDoesNotDeclareParameterTypeException( get_class($other), - $this->method + $this->method, ); } @@ -123,7 +123,7 @@ final class ObjectEquals extends Constraint if (!$type instanceof ReflectionNamedType) { throw new ComparisonMethodDoesNotDeclareParameterTypeException( get_class($other), - $this->method + $this->method, ); } @@ -137,7 +137,7 @@ final class ObjectEquals extends Constraint throw new ComparisonMethodDoesNotAcceptParameterTypeException( get_class($other), $this->method, - get_class($this->expected) + get_class($this->expected), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php new file mode 100644 index 00000000..c41d21a1 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use function get_class; +use function gettype; +use function is_object; +use function sprintf; +use ReflectionObject; + +/** + * @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit + */ +final class ObjectHasProperty extends Constraint +{ + /** + * @var string + */ + private $propertyName; + + public function __construct(string $propertyName) + { + $this->propertyName = $propertyName; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return sprintf( + 'has property "%s"', + $this->propertyName, + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if (!is_object($other)) { + return false; + } + + return (new ReflectionObject($other))->hasProperty($this->propertyName); + } + + /** + * Returns the description of the failure. + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + if (is_object($other)) { + return sprintf( + 'object of class "%s" %s', + get_class($other), + $this->toString(), + ); + } + + return sprintf( + '"%s" (%s) %s', + $other, + gettype($other), + $this->toString(), + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php index 7560ce2a..327f85bf 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalNot.php @@ -63,15 +63,15 @@ final class LogicalNot extends UnaryOperator preg_replace( $positives, $negatives, - $nonInput + $nonInput, ), - $string + $string, ); } else { $negatedString = preg_replace( $positives, $negatives, - $string + $string, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php index fbdb479b..ee1b1c29 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php @@ -57,7 +57,7 @@ final class LogicalXor extends BinaryOperator { return $matches xor $constraint->evaluate($other, '', true); }, - $initial->evaluate($other, '', true) + $initial->evaluate($other, '', true), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php index 97b29461..f90704f0 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/IsJson.php @@ -65,13 +65,13 @@ final class IsJson extends Constraint json_decode($other); $error = (string) JsonMatchesErrorMessageProvider::determineJsonError( - (string) json_last_error() + (string) json_last_error(), ); return sprintf( '%s is valid JSON (%s)', $this->exporter()->shortenedExport($other), - $error + $error, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php index 8e609e79..9ccfb9bd 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php @@ -34,7 +34,7 @@ class RegularExpression extends Constraint { return sprintf( 'matches PCRE pattern "%s"', - $this->pattern + $this->pattern, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php index 6279f37b..5aa2c8e5 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringContains.php @@ -48,7 +48,7 @@ final class StringContains extends Constraint return sprintf( 'contains "%s"', - $string + $string, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php index c4f7324e..9c01ecb9 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringMatchesFormatDescription.php @@ -33,8 +33,8 @@ final class StringMatchesFormatDescription extends RegularExpression { parent::__construct( $this->createPatternFromFormat( - $this->convertNewlines($string) - ) + $this->convertNewlines($string), + ), ); $this->string = $string; @@ -49,7 +49,7 @@ final class StringMatchesFormatDescription extends RegularExpression protected function matches($other): bool { return parent::matches( - $this->convertNewlines($other) + $this->convertNewlines($other), ); } @@ -96,7 +96,7 @@ final class StringMatchesFormatDescription extends RegularExpression '%x' => '[0-9a-fA-F]+', '%f' => '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?', '%c' => '.', - ] + ], ); return '/^' . $string . '$/s'; diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php index 089545c1..8683e272 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/String/StringStartsWith.php @@ -9,7 +9,6 @@ */ namespace PHPUnit\Framework\Constraint; -use function strlen; use function strpos; use PHPUnit\Framework\InvalidArgumentException; @@ -25,7 +24,7 @@ final class StringStartsWith extends Constraint public function __construct(string $prefix) { - if (strlen($prefix) === 0) { + if ($prefix === '') { throw InvalidArgumentException::create(1, 'non-empty string'); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php index 39660a98..d0f61f46 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContains.php @@ -52,7 +52,7 @@ abstract class TraversableContains extends Constraint return sprintf( '%s %s', is_array($other) ? 'an array' : 'a traversable', - $this->toString() + $this->toString(), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php index cf4a46b4..e5c68890 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Traversable/TraversableContainsOnly.php @@ -36,7 +36,7 @@ final class TraversableContainsOnly extends Constraint $this->constraint = new IsType($type); } else { $this->constraint = new IsInstanceOf( - $type + $type, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php index f0fa02b9..ef26813f 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsInstanceOf.php @@ -36,7 +36,7 @@ final class IsInstanceOf extends Constraint return sprintf( 'is instance of %s "%s"', $this->getType(), - $this->className + $this->className, ); } @@ -67,7 +67,7 @@ final class IsInstanceOf extends Constraint '%s is an instance of %s "%s"', $this->exporter()->shortenedExport($other), $this->getType(), - $this->className + $this->className, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php index 5bc691d7..6edcc2b9 100644 --- a/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Type/IsType.php @@ -130,8 +130,8 @@ final class IsType extends Constraint sprintf( 'Type specified for PHPUnit\Framework\Constraint\IsType <%s> ' . 'is not a valid type.', - $type - ) + $type, + ), ); } @@ -145,7 +145,7 @@ final class IsType extends Constraint { return sprintf( 'is of type "%s"', - $this->type + $this->type, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/ErrorTestCase.php b/vendor/phpunit/phpunit/src/Framework/ErrorTestCase.php index 841247d7..245f0336 100644 --- a/vendor/phpunit/phpunit/src/Framework/ErrorTestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/ErrorTestCase.php @@ -15,17 +15,17 @@ namespace PHPUnit\Framework; final class ErrorTestCase extends TestCase { /** - * @var bool + * @var ?bool */ protected $backupGlobals = false; /** - * @var bool + * @var ?bool */ protected $backupStaticAttributes = false; /** - * @var bool + * @var ?bool */ protected $runTestInSeparateProcess = false; diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php index adae2829..4364788c 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ActualValueIsNotAnObjectException.php @@ -21,7 +21,7 @@ final class ActualValueIsNotAnObjectException extends Exception parent::__construct( 'Actual value is not an object', 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php index ebd68f34..0c2c1afe 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotAcceptParameterTypeException.php @@ -24,10 +24,10 @@ final class ComparisonMethodDoesNotAcceptParameterTypeException extends Exceptio '%s is not an accepted argument type for comparison method %s::%s().', $type, $className, - $methodName + $methodName, ), 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php index 20189cde..4eb9a2fd 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareBoolReturnTypeException.php @@ -23,10 +23,10 @@ final class ComparisonMethodDoesNotDeclareBoolReturnTypeException extends Except sprintf( 'Comparison method %s::%s() does not declare bool return type.', $className, - $methodName + $methodName, ), 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php index bd09d87c..e8cd9787 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareExactlyOneParameterException.php @@ -23,10 +23,10 @@ final class ComparisonMethodDoesNotDeclareExactlyOneParameterException extends E sprintf( 'Comparison method %s::%s() does not declare exactly one parameter.', $className, - $methodName + $methodName, ), 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php index 9bbb112e..68616ba1 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotDeclareParameterTypeException.php @@ -23,10 +23,10 @@ final class ComparisonMethodDoesNotDeclareParameterTypeException extends Excepti sprintf( 'Parameter of comparison method %s::%s() does not have a declared type.', $className, - $methodName + $methodName, ), 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php index ad0e2d08..0f1adcbc 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/ComparisonMethodDoesNotExistException.php @@ -23,10 +23,10 @@ final class ComparisonMethodDoesNotExistException extends Exception sprintf( 'Comparison method %s::%s() does not exist.', $className, - $methodName + $methodName, ), 0, - null + null, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php b/vendor/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php index 77f58079..888e9300 100644 --- a/vendor/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php +++ b/vendor/phpunit/phpunit/src/Framework/Exception/InvalidArgumentException.php @@ -34,8 +34,8 @@ final class InvalidArgumentException extends Exception $argument, $function, in_array(lcfirst($type)[0], ['a', 'e', 'i', 'o', 'u'], true) ? 'an' : 'a', - $type - ) + $type, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php b/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php index 09c343c1..89ecc5e2 100644 --- a/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php +++ b/vendor/phpunit/phpunit/src/Framework/ExecutionOrderDependency.php @@ -77,8 +77,8 @@ final class ExecutionOrderDependency static function (self $d) { return $d->isValid(); - } - ) + }, + ), ); } @@ -95,7 +95,7 @@ final class ExecutionOrderDependency { return $dependency->getTarget(); }, - $existing + $existing, ); foreach ($additional as $dependency) { @@ -132,7 +132,7 @@ final class ExecutionOrderDependency { return $dependency->getTarget(); }, - $right + $right, ); foreach ($left as $dependency) { diff --git a/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php b/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php index ee1e3e9f..53e031a2 100644 --- a/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php @@ -15,17 +15,17 @@ namespace PHPUnit\Framework; final class IncompleteTestCase extends TestCase { /** - * @var bool + * @var ?bool */ protected $backupGlobals = false; /** - * @var bool + * @var ?bool */ protected $backupStaticAttributes = false; /** - * @var bool + * @var ?bool */ protected $runTestInSeparateProcess = false; diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Api.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Api.php index e2f0a280..56e6b69b 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Api.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Api.php @@ -42,7 +42,7 @@ trait Api { if (isset(static::$__phpunit_configurableMethods)) { throw new ConfigurableMethodsAlreadyInitializedException( - 'Configurable methods is already initialized and can not be reinitialized' + 'Configurable methods is already initialized and can not be reinitialized', ); } @@ -67,7 +67,7 @@ trait Api if ($this->__phpunit_invocationMocker === null) { $this->__phpunit_invocationMocker = new InvocationHandler( static::$__phpunit_configurableMethods, - $this->__phpunit_returnValueGeneration + $this->__phpunit_returnValueGeneration, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Method.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Method.php index f6df7533..f8be3808 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Method.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Api/Method.php @@ -24,7 +24,7 @@ trait Method return call_user_func_array( [$expects, 'method'], - func_get_args() + func_get_args(), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php index bc3c9236..626c33a7 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php @@ -241,7 +241,7 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch { return strtolower($configurable->getName()); }, - $this->configurableMethods + $this->configurableMethods, ); if (is_string($constraint) && !in_array(strtolower($constraint), $configurableMethodNames, true)) { @@ -300,7 +300,7 @@ final class InvocationMocker implements InvocationStubber, MethodNameMatch if (!$configuredMethod->mayReturn($value)) { throw new IncompatibleReturnValueException( $configuredMethod, - $value + $value, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php index f32ff0e7..1756cfc0 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationStubber.php @@ -20,46 +20,46 @@ interface InvocationStubber public function will(Stub $stub): Identity; /** @return self */ - public function willReturn($value, ...$nextValues)/*: self */; + public function willReturn($value, ...$nextValues)/* : self */; /** * @param mixed $reference * * @return self */ - public function willReturnReference(&$reference)/*: self */; + public function willReturnReference(&$reference)/* : self */; /** * @param array> $valueMap * * @return self */ - public function willReturnMap(array $valueMap)/*: self */; + public function willReturnMap(array $valueMap)/* : self */; /** * @param int $argumentIndex * * @return self */ - public function willReturnArgument($argumentIndex)/*: self */; + public function willReturnArgument($argumentIndex)/* : self */; /** * @param callable $callback * * @return self */ - public function willReturnCallback($callback)/*: self */; + public function willReturnCallback($callback)/* : self */; /** @return self */ - public function willReturnSelf()/*: self */; + public function willReturnSelf()/* : self */; /** * @param mixed $values * * @return self */ - public function willReturnOnConsecutiveCalls(...$values)/*: self */; + public function willReturnOnConsecutiveCalls(...$values)/* : self */; /** @return self */ - public function willThrowException(Throwable $exception)/*: self */; + public function willThrowException(Throwable $exception)/* : self */; } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php index 0698870b..848746b5 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseAddMethodsException.php @@ -22,8 +22,8 @@ final class CannotUseAddMethodsException extends \PHPUnit\Framework\Exception im sprintf( 'Trying to configure method "%s" with addMethods(), but it exists in class "%s". Use onlyMethods() for methods that exist in the class', $methodName, - $type - ) + $type, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php index 35a29b73..0efcd02a 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php @@ -22,8 +22,8 @@ final class CannotUseOnlyMethodsException extends \PHPUnit\Framework\Exception i sprintf( 'Trying to configure method "%s" with onlyMethods(), but it does not exist in class "%s". Use addMethods() for methods that do not exist in the class', $methodName, - $type - ) + $type, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php index 0ba9a187..8c9c0a52 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassAlreadyExistsException.php @@ -21,8 +21,8 @@ final class ClassAlreadyExistsException extends \PHPUnit\Framework\Exception imp parent::__construct( sprintf( 'Class "%s" already exists', - $className - ) + $className, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php index e648f026..2bce2d88 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsFinalException.php @@ -21,8 +21,8 @@ final class ClassIsFinalException extends \PHPUnit\Framework\Exception implement parent::__construct( sprintf( 'Class "%s" is declared "final" and cannot be doubled', - $className - ) + $className, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsReadonlyException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsReadonlyException.php index aa1a7451..f73570e1 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsReadonlyException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ClassIsReadonlyException.php @@ -21,8 +21,8 @@ final class ClassIsReadonlyException extends \PHPUnit\Framework\Exception implem parent::__construct( sprintf( 'Class "%s" is declared "readonly" and cannot be doubled', - $className - ) + $className, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php index 1216b45d..f96a04ac 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/DuplicateMethodException.php @@ -28,8 +28,8 @@ final class DuplicateMethodException extends \PHPUnit\Framework\Exception implem sprintf( 'Cannot double using a method list that contains duplicates: "%s" (duplicate: "%s")', implode(', ', $methods), - implode(', ', array_unique(array_diff_assoc($methods, array_unique($methods)))) - ) + implode(', ', array_unique(array_diff_assoc($methods, array_unique($methods)))), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php index eec79213..1ca8e9c9 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php @@ -29,8 +29,8 @@ final class IncompatibleReturnValueException extends \PHPUnit\Framework\Exceptio 'Method %s may not return value of type %s, its declared return type is "%s"', $method->getName(), is_object($value) ? get_class($value) : gettype($value), - $method->getReturnTypeDeclaration() - ) + $method->getReturnTypeDeclaration(), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php index d2444cf1..0ab74cbb 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/InvalidMethodNameException.php @@ -21,8 +21,8 @@ final class InvalidMethodNameException extends \PHPUnit\Framework\Exception impl parent::__construct( sprintf( 'Cannot double method with invalid name "%s"', - $method - ) + $method, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php index c05b2bce..f2e1a31e 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatchBuilderNotFoundException.php @@ -21,8 +21,8 @@ final class MatchBuilderNotFoundException extends \PHPUnit\Framework\Exception i parent::__construct( sprintf( 'No builder found for match builder identification <%s>', - $id - ) + $id, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php index efcc13ed..0972ffaf 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MatcherAlreadyRegisteredException.php @@ -21,8 +21,8 @@ final class MatcherAlreadyRegisteredException extends \PHPUnit\Framework\Excepti parent::__construct( sprintf( 'Matcher with id <%s> is already registered', - $id - ) + $id, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php index 70729043..2f0bb5a6 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/MethodCannotBeConfiguredException.php @@ -21,8 +21,8 @@ final class MethodCannotBeConfiguredException extends \PHPUnit\Framework\Excepti parent::__construct( sprintf( 'Trying to configure method "%s" which cannot be configured because it does not exist, has not been specified, is final, or is static', - $method - ) + $method, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php index 2c16c1dc..2bc4e882 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php @@ -22,8 +22,8 @@ final class ReturnValueNotConfiguredException extends \PHPUnit\Framework\Excepti sprintf( 'Return value inference disabled and no expectation set up for %s::%s()', $invocation->getClassName(), - $invocation->getMethodName() - ) + $invocation->getMethodName(), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php index 98837c95..6ec5057a 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/SoapExtensionNotAvailableException.php @@ -17,7 +17,7 @@ final class SoapExtensionNotAvailableException extends \PHPUnit\Framework\Except public function __construct() { parent::__construct( - 'The SOAP extension is required to generate a test double from WSDL' + 'The SOAP extension is required to generate a test double from WSDL', ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php index e124f9b1..b08dead0 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php @@ -21,8 +21,8 @@ final class UnknownClassException extends \PHPUnit\Framework\Exception implement parent::__construct( sprintf( 'Class "%s" does not exist', - $className - ) + $className, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php index 90fc8d84..c689dae9 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php @@ -21,8 +21,8 @@ final class UnknownTraitException extends \PHPUnit\Framework\Exception implement parent::__construct( sprintf( 'Trait "%s" does not exist', - $traitName - ) + $traitName, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php index b1a70edd..c50b6911 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php @@ -21,8 +21,8 @@ final class UnknownTypeException extends \PHPUnit\Framework\Exception implements parent::__construct( sprintf( 'Class or interface "%s" does not exist', - $type - ) + $type, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php index 4810ecae..d61725b1 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php @@ -186,7 +186,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -207,7 +207,7 @@ EOT; $callOriginalClone, $callAutoload, $cloneArguments, - $callOriginalMethods + $callOriginalMethods, ); return $this->getObject( @@ -218,7 +218,7 @@ EOT; $arguments, $callOriginalMethods, $proxyTarget, - $returnValueGeneration + $returnValueGeneration, ); } @@ -265,7 +265,7 @@ EOT; $intersectionName = sprintf( 'Intersection_%s_%s', implode('_', $unqualifiedNames), - substr(md5((string) mt_rand()), 0, 8) + substr(md5((string) mt_rand()), 0, 8), ); } while (interface_exists($intersectionName, false)); @@ -275,7 +275,7 @@ EOT; [ 'intersection' => $intersectionName, 'interfaces' => implode(', ', $interfaces), - ] + ], ); eval($template->render()); @@ -318,7 +318,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -343,7 +343,7 @@ EOT; $callOriginalConstructor, $callOriginalClone, $callAutoload, - $cloneArguments + $cloneArguments, ); } @@ -379,7 +379,7 @@ EOT; $className = $this->generateClassName( $traitName, '', - 'Trait_' + 'Trait_', ); $classTemplate = $this->getTemplate('trait_class.tpl'); @@ -389,7 +389,7 @@ EOT; 'prologue' => 'abstract ', 'class_name' => $className['className'], 'trait_name' => $traitName, - ] + ], ); $mockTrait = new MockTrait($classTemplate->render(), $className['className']); @@ -416,7 +416,7 @@ EOT; $className = $this->generateClassName( $traitName, $traitClassName, - 'Trait_' + 'Trait_', ); $classTemplate = $this->getTemplate('trait_class.tpl'); @@ -426,18 +426,18 @@ EOT; 'prologue' => '', 'class_name' => $className['className'], 'trait_name' => $traitName, - ] + ], ); return $this->getObject( new MockTrait( $classTemplate->render(), - $className['className'] + $className['className'], ), '', $callOriginalConstructor, $callAutoload, - $arguments + $arguments, ); } @@ -457,7 +457,7 @@ EOT; $callOriginalClone, $callAutoload, $cloneArguments, - $callOriginalMethods + $callOriginalMethods, ); } @@ -466,7 +466,7 @@ EOT; serialize($methods) . serialize($callOriginalClone) . serialize($cloneArguments) . - serialize($callOriginalMethods) + serialize($callOriginalMethods), ); if (!isset(self::$cache[$key])) { @@ -477,7 +477,7 @@ EOT; $callOriginalClone, $callAutoload, $cloneArguments, - $callOriginalMethods + $callOriginalMethods, ); } @@ -504,7 +504,7 @@ EOT; throw new RuntimeException( $e->getMessage(), $e->getCode(), - $e + $e, ); } @@ -523,7 +523,7 @@ EOT; if (empty($methods) || in_array($name, $methods, true)) { $args = explode( ',', - str_replace(')', '', substr($method, $nameEnd + 1)) + str_replace(')', '', substr($method, $nameEnd + 1)), ); foreach (range(0, count($args) - 1) as $i) { @@ -540,7 +540,7 @@ EOT; [ 'method_name' => $name, 'arguments' => implode(', ', $args), - ] + ], ); $methodsBuffer .= $methodTemplate->render(); @@ -571,7 +571,7 @@ EOT; 'wsdl' => $wsdlFile, 'options' => $optionsBuffer, 'methods' => $methodsBuffer, - ] + ], ); return $classTemplate->render(); @@ -591,7 +591,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -621,7 +621,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -651,7 +651,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -681,7 +681,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -718,7 +718,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -745,7 +745,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -784,7 +784,7 @@ EOT; $_mockClassName = $this->generateClassName( $type, $mockClassName, - 'Mock_' + 'Mock_', ); if (class_exists($_mockClassName['fullClassName'], $callAutoload)) { @@ -813,7 +813,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -839,7 +839,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -855,7 +855,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -866,14 +866,14 @@ EOT; } $mockMethods->addMethods( - MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments) + MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments), ); } $_mockClassName = $this->generateClassName( $actualClassName, $_mockClassName['className'], - 'Mock_' + 'Mock_', ); } @@ -884,7 +884,7 @@ EOT; $additionalInterfaces[] = Iterator::class; $mockMethods->addMethods( - ...$this->mockClassMethods(Iterator::class, $callOriginalMethods, $cloneArguments) + ...$this->mockClassMethods(Iterator::class, $callOriginalMethods, $cloneArguments), ); } @@ -896,7 +896,7 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -915,13 +915,13 @@ EOT; if ($isClass && $explicitMethods === []) { $mockMethods->addMethods( - ...$this->mockClassMethods($_mockClassName['fullClassName'], $callOriginalMethods, $cloneArguments) + ...$this->mockClassMethods($_mockClassName['fullClassName'], $callOriginalMethods, $cloneArguments), ); } if ($isInterface && ($explicitMethods === [] || $explicitMethods === null)) { $mockMethods->addMethods( - ...$this->mockInterfaceMethods($_mockClassName['fullClassName'], $cloneArguments) + ...$this->mockInterfaceMethods($_mockClassName['fullClassName'], $cloneArguments), ); } @@ -935,14 +935,14 @@ EOT; throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd if ($this->canMockMethod($method)) { $mockMethods->addMethods( - MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments) + MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments), ); } } else { @@ -950,8 +950,8 @@ EOT; MockMethod::fromName( $_mockClassName['fullClassName'], $methodName, - $cloneArguments - ) + $cloneArguments, + ), ); } } @@ -988,19 +988,19 @@ EOT; 'class_declaration' => $this->generateMockClassDeclaration( $_mockClassName, $isInterface, - $additionalInterfaces + $additionalInterfaces, ), 'clone' => $cloneTrait, 'mock_class_name' => $_mockClassName['className'], 'mocked_methods' => $mockedMethods, 'method' => $method, - ] + ], ); return new MockClass( $classTemplate->render(), $_mockClassName['className'], - $configurable + $configurable, ); } @@ -1047,7 +1047,7 @@ EOT; $buffer .= sprintf( '%s implements %s', $mockClassName['className'], - $interfaces + $interfaces, ); if (!in_array($mockClassName['originalClassName'], $additionalInterfaces, true)) { @@ -1065,7 +1065,7 @@ EOT; $mockClassName['className'], !empty($mockClassName['namespaceName']) ? $mockClassName['namespaceName'] . '\\' : '', $mockClassName['originalClassName'], - $interfaces + $interfaces, ); } @@ -1096,7 +1096,7 @@ EOT; throw new RuntimeException( $e->getMessage(), $e->getCode(), - $e + $e, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation.php index 418d6a07..ed8c4e92 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation.php @@ -183,7 +183,7 @@ final class Invocation implements SelfDescribing throw new RuntimeException( $t->getMessage(), (int) $t->getCode(), - $t + $t, ); } } @@ -221,7 +221,7 @@ final class Invocation implements SelfDescribing throw new RuntimeException( $t->getMessage(), (int) $t->getCode(), - $t + $t, ); } } @@ -256,8 +256,8 @@ final class Invocation implements SelfDescribing 'Return value for %s::%s() cannot be generated%s, please configure a return value for this method', $this->className, $this->methodName, - $reason - ) + $reason, + ), ); } @@ -273,10 +273,10 @@ final class Invocation implements SelfDescribing ', ', array_map( [$exporter, 'shortenedExport'], - $this->parameters - ) + $this->parameters, + ), ), - $this->returnType ? sprintf(': %s', $this->returnType) : '' + $this->returnType ? sprintf(': %s', $this->returnType) : '', ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php b/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php index b9d62610..f8ee16e0 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationHandler.php @@ -102,7 +102,7 @@ final class InvocationHandler return new InvocationMocker( $this, $matcher, - ...$this->configurableMethods + ...$this->configurableMethods, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php index 7c81a0ea..a8ebe14f 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php @@ -117,8 +117,8 @@ final class Matcher if ($this->afterMatchBuilderId !== null) { $matcher = $invocation->getObject() - ->__phpunit_getInvocationHandler() - ->lookupMatcher($this->afterMatchBuilderId); + ->__phpunit_getInvocationHandler() + ->lookupMatcher($this->afterMatchBuilderId); if (!$matcher) { throw new MatchBuilderNotFoundException($this->afterMatchBuilderId); @@ -143,9 +143,9 @@ final class Matcher "Expectation failed for %s when %s\n%s", $this->methodNameRule->toString(), $this->invocationRule->toString(), - $e->getMessage() + $e->getMessage(), ), - $e->getComparisonFailure() + $e->getComparisonFailure(), ); } @@ -167,8 +167,8 @@ final class Matcher { if ($this->afterMatchBuilderId !== null) { $matcher = $invocation->getObject() - ->__phpunit_getInvocationHandler() - ->lookupMatcher($this->afterMatchBuilderId); + ->__phpunit_getInvocationHandler() + ->lookupMatcher($this->afterMatchBuilderId); if (!$matcher) { throw new MatchBuilderNotFoundException($this->afterMatchBuilderId); @@ -199,9 +199,9 @@ final class Matcher "Expectation failed for %s when %s\n%s", $this->methodNameRule->toString(), $this->invocationRule->toString(), - $e->getMessage() + $e->getMessage(), ), - $e->getComparisonFailure() + $e->getComparisonFailure(), ); } @@ -239,8 +239,8 @@ final class Matcher "Expectation failed for %s when %s.\n%s", $this->methodNameRule->toString(), $this->invocationRule->toString(), - TestFailure::exceptionToString($e) - ) + TestFailure::exceptionToString($e), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php index 3082ab38..e5c955d3 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MethodNameConstraint.php @@ -33,7 +33,7 @@ final class MethodNameConstraint extends Constraint { return sprintf( 'is "%s"', - $this->methodName + $this->methodName, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php index 4007a9f1..69ec2502 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php @@ -138,7 +138,7 @@ final class MockBuilder $this->callOriginalMethods, $this->proxyTarget, $this->allowMockingUnknownTypes, - $this->returnValueGeneration + $this->returnValueGeneration, ); $this->testCase->registerMockObject($object); @@ -165,7 +165,7 @@ final class MockBuilder $this->originalClone, $this->autoload, $this->methods, - $this->cloneArguments + $this->cloneArguments, ); $this->testCase->registerMockObject($object); @@ -192,7 +192,7 @@ final class MockBuilder $this->originalClone, $this->autoload, $this->methods, - $this->cloneArguments + $this->cloneArguments, ); $this->testCase->registerMockObject($object); @@ -243,7 +243,7 @@ final class MockBuilder throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -285,7 +285,7 @@ final class MockBuilder throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -313,8 +313,8 @@ final class MockBuilder return $this->setMethods( array_diff( $this->generator->getClassMethods($this->type), - $methods - ) + $methods, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockClass.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockClass.php index 253d7846..8f5c276d 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/MockClass.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockClass.php @@ -55,7 +55,7 @@ final class MockClass implements MockType $this->mockName, '__phpunit_initConfigurableMethods', ], - ...$this->configurableMethods + ...$this->configurableMethods, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php index 2cf149ad..88462dfe 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php @@ -140,7 +140,7 @@ final class MockMethod $reference, $callOriginalMethod, $method->isStatic(), - $deprecation + $deprecation, ); } @@ -157,7 +157,7 @@ final class MockMethod '', false, false, - null + null, ); } @@ -191,12 +191,12 @@ final class MockMethod } elseif ($this->returnType->isNever() || $this->returnType->isVoid()) { $templateFile = sprintf( '%s_method_never_or_void.tpl', - $this->callOriginalMethod ? 'proxied' : 'mocked' + $this->callOriginalMethod ? 'proxied' : 'mocked', ); } else { $templateFile = sprintf( '%s_method.tpl', - $this->callOriginalMethod ? 'proxied' : 'mocked' + $this->callOriginalMethod ? 'proxied' : 'mocked', ); } @@ -209,7 +209,7 @@ final class MockMethod $deprecationTemplate->setVar( [ 'deprecation' => var_export($deprecation, true), - ] + ], ); $deprecation = $deprecationTemplate->render(); @@ -230,7 +230,7 @@ final class MockMethod 'reference' => $this->reference, 'clone_arguments' => $this->cloneArguments ? 'true' : 'false', 'deprecation' => $deprecation, - ] + ], ); return $template->render(); @@ -255,7 +255,7 @@ final class MockMethod throw new RuntimeException( $e->getMessage(), $e->getCode(), - $e + $e, ); } } @@ -361,18 +361,18 @@ final class MockMethod substr( substr( $parameterAsString, - strpos($parameterAsString, ' ') + strlen(' ') + strpos($parameterAsString, ' ') + strlen(' '), ), 0, - -2 - ) + -2, + ), )[1]; // @codeCoverageIgnoreStart } catch (\ReflectionException $e) { throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php index 2188ea0f..703c1434 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/ConsecutiveParameters.php @@ -47,8 +47,8 @@ final class ConsecutiveParameters implements ParametersRule sprintf( 'Parameter group #%d must be an array or Traversable, got %s', $index, - gettype($parameters) - ) + gettype($parameters), + ), ); } @@ -111,8 +111,8 @@ final class ConsecutiveParameters implements ParametersRule throw new ExpectationFailedException( sprintf( 'Parameter count for invocation %s is too low.', - $invocation->toString() - ) + $invocation->toString(), + ), ); } @@ -124,8 +124,8 @@ final class ConsecutiveParameters implements ParametersRule 'value.', $i, $callIndex, - $invocation->toString() - ) + $invocation->toString(), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php index 9b51f4ef..d56618cb 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtIndex.php @@ -64,8 +64,8 @@ final class InvokedAtIndex extends InvocationOrder throw new ExpectationFailedException( sprintf( 'The expected invocation at index %s was never reached.', - $this->sequenceIndex - ) + $this->sequenceIndex, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php index a84aa655..afc880e1 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastCount.php @@ -48,7 +48,7 @@ final class InvokedAtLeastCount extends InvocationOrder if ($count < $this->requiredInvocations) { throw new ExpectationFailedException( 'Expected invocation at least ' . $this->requiredInvocations . - ' times but it occurred ' . $count . ' time(s).' + ' times but it occurred ' . $count . ' time(s).', ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php index d0ad1f80..645ed309 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtLeastOnce.php @@ -34,7 +34,7 @@ final class InvokedAtLeastOnce extends InvocationOrder if ($count < 1) { throw new ExpectationFailedException( - 'Expected invocation at least once but it never occurred.' + 'Expected invocation at least once but it never occurred.', ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php index c3b815aa..df81a613 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedAtMostCount.php @@ -48,7 +48,7 @@ final class InvokedAtMostCount extends InvocationOrder if ($count > $this->allowedInvocations) { throw new ExpectationFailedException( 'Expected invocation at most ' . $this->allowedInvocations . - ' times but it occurred ' . $count . ' time(s).' + ' times but it occurred ' . $count . ' time(s).', ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php index 188326c9..a962118e 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/InvokedCount.php @@ -62,8 +62,8 @@ final class InvokedCount extends InvocationOrder 'Method was expected to be called %d times, ' . 'actually called %d times.', $this->expectedCount, - $count - ) + $count, + ), ); } } @@ -92,7 +92,7 @@ final class InvokedCount extends InvocationOrder default: $message .= sprintf( 'was not expected to be called more than %d times.', - $this->expectedCount + $this->expectedCount, ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php index 3f1cc53a..cb71b271 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Rule/Parameters.php @@ -47,7 +47,7 @@ final class Parameters implements ParametersRule foreach ($parameters as $parameter) { if (!($parameter instanceof Constraint)) { $parameter = new IsEqual( - $parameter + $parameter, ); } @@ -127,7 +127,7 @@ final class Parameters implements ParametersRule } throw new ExpectationFailedException( - sprintf($message, $this->invocation->toString()) + sprintf($message, $this->invocation->toString()), ); } @@ -138,8 +138,8 @@ final class Parameters implements ParametersRule 'Parameter %s for invocation %s does not match expected ' . 'value.', $i, - $this->invocation->toString() - ) + $this->invocation->toString(), + ), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php index 0dcf386b..8b01656f 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php @@ -51,7 +51,7 @@ final class ConsecutiveCalls implements Stub return sprintf( 'return user-specified value %s', - $exporter->export($this->value) + $exporter->export($this->value), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php index 5d64c96a..aa9074eb 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php @@ -40,7 +40,7 @@ final class Exception implements Stub return sprintf( 'raise user-specified exception %s', - $exporter->export($this->exception) + $exporter->export($this->exception), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php index e02181e9..0f24aafc 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php @@ -49,7 +49,7 @@ final class ReturnCallback implements Stub 'passed arguments', $class, $type, - $this->callback[1] + $this->callback[1], ); } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php index 0d288ceb..ea2bb735 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php @@ -39,7 +39,7 @@ final class ReturnReference implements Stub return sprintf( 'return user-specified reference %s', - $exporter->export($this->reference) + $exporter->export($this->reference), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php index fbcd0a07..4ecbc3b9 100644 --- a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php @@ -39,7 +39,7 @@ final class ReturnStub implements Stub return sprintf( 'return user-specified value %s', - $exporter->export($this->value) + $exporter->export($this->value), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php b/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php index 51c00619..6f8a267c 100644 --- a/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php @@ -15,17 +15,17 @@ namespace PHPUnit\Framework; final class SkippedTestCase extends TestCase { /** - * @var bool + * @var ?bool */ protected $backupGlobals = false; /** - * @var bool + * @var ?bool */ protected $backupStaticAttributes = false; /** - * @var bool + * @var ?bool */ protected $runTestInSeparateProcess = false; diff --git a/vendor/phpunit/phpunit/src/Framework/TestBuilder.php b/vendor/phpunit/phpunit/src/Framework/TestBuilder.php index 5dd91e21..77404df0 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestBuilder.php +++ b/vendor/phpunit/phpunit/src/Framework/TestBuilder.php @@ -31,28 +31,28 @@ final class TestBuilder if (!$theClass->isInstantiable()) { return new ErrorTestCase( - sprintf('Cannot instantiate class "%s".', $className) + sprintf('Cannot instantiate class "%s".', $className), ); } $backupSettings = TestUtil::getBackupSettings( $className, - $methodName + $methodName, ); $preserveGlobalState = TestUtil::getPreserveGlobalStateSettings( $className, - $methodName + $methodName, ); $runTestInSeparateProcess = TestUtil::getProcessIsolationSettings( $className, - $methodName + $methodName, ); $runClassInSeparateProcess = TestUtil::getClassProcessIsolationSettings( $className, - $methodName + $methodName, ); $constructor = $theClass->getConstructor(); @@ -71,14 +71,14 @@ final class TestBuilder try { $data = TestUtil::getProvidedData( $className, - $methodName + $methodName, ); } catch (IncompleteTestError $e) { $message = sprintf( "Test for %s::%s marked incomplete by data provider\n%s", $className, $methodName, - $this->throwableToString($e) + $this->throwableToString($e), ); $data = new IncompleteTestCase($className, $methodName, $message); @@ -87,7 +87,7 @@ final class TestBuilder "Test for %s::%s skipped by data provider\n%s", $className, $methodName, - $this->throwableToString($e) + $this->throwableToString($e), ); $data = new SkippedTestCase($className, $methodName, $message); @@ -96,7 +96,7 @@ final class TestBuilder "The data provider specified for %s::%s is invalid.\n%s", $className, $methodName, - $this->throwableToString($t) + $this->throwableToString($t), ); $data = new ErrorTestCase($message); @@ -111,7 +111,7 @@ final class TestBuilder $runTestInSeparateProcess, $preserveGlobalState, $runClassInSeparateProcess, - $backupSettings + $backupSettings, ); } else { $test = $this->buildTestWithoutData($className); @@ -125,7 +125,7 @@ final class TestBuilder $runTestInSeparateProcess, $preserveGlobalState, $runClassInSeparateProcess, - $backupSettings + $backupSettings, ); } @@ -149,7 +149,7 @@ final class TestBuilder array $backupSettings ): DataProviderTestSuite { $dataProviderTestSuite = new DataProviderTestSuite( - $className . '::' . $methodName + $className . '::' . $methodName, ); $groups = TestUtil::getGroups($className, $methodName); @@ -169,7 +169,7 @@ final class TestBuilder $runTestInSeparateProcess, $preserveGlobalState, $runClassInSeparateProcess, - $backupSettings + $backupSettings, ); $dataProviderTestSuite->addTest($_test, $groups); @@ -208,7 +208,7 @@ final class TestBuilder if ($backupSettings['backupStaticAttributes'] !== null) { $test->setBackupStaticAttributes( - $backupSettings['backupStaticAttributes'] + $backupSettings['backupStaticAttributes'], ); } } @@ -225,7 +225,7 @@ final class TestBuilder return sprintf( "%s\n%s", $message, - Filter::getFilteredStacktrace($t) + Filter::getFilteredStacktrace($t), ); } @@ -233,7 +233,7 @@ final class TestBuilder "%s: %s\n%s", get_class($t), $message, - Filter::getFilteredStacktrace($t) + Filter::getFilteredStacktrace($t), ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/TestCase.php b/vendor/phpunit/phpunit/src/Framework/TestCase.php index 2d83fe01..380759b6 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/TestCase.php @@ -139,7 +139,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T protected $backupGlobalsBlacklist = []; /** - * @var bool + * @var ?bool */ protected $backupStaticAttributes; @@ -156,7 +156,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T protected $backupStaticAttributesBlacklist = []; /** - * @var bool + * @var ?bool */ protected $runTestInSeparateProcess; @@ -171,7 +171,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T protected $providedTests = []; /** - * @var bool + * @var ?bool */ private $runClassInSeparateProcess; @@ -374,7 +374,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T public static function atLeast(int $requiredInvocations): InvokedAtLeastCountMatcher { return new InvokedAtLeastCountMatcher( - $requiredInvocations + $requiredInvocations, ); } @@ -429,7 +429,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T if (isset($frame['object']) && $frame['object'] instanceof self) { $frame['object']->addWarning( - 'The at() matcher has been deprecated. It will be removed in PHPUnit 10. Please refactor your test to not rely on the order in which methods are invoked.' + 'The at() matcher has been deprecated. It will be removed in PHPUnit 10. Please refactor your test to not rely on the order in which methods are invoked.', ); break; @@ -555,7 +555,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -563,7 +563,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $buffer = sprintf( '%s::%s', $class->name, - $this->getName(false) + $this->getName(false), ); return $buffer . $this->getDataSetAsString(); @@ -837,18 +837,18 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd if ($runEntireClass) { $template = new Template( - __DIR__ . '/../Util/PHP/Template/TestCaseClass.tpl' + __DIR__ . '/../Util/PHP/Template/TestCaseClass.tpl', ); } else { $template = new Template( - __DIR__ . '/../Util/PHP/Template/TestCaseMethod.tpl' + __DIR__ . '/../Util/PHP/Template/TestCaseMethod.tpl', ); } @@ -1043,7 +1043,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T { return TestUtil::getSize( static::class, - $this->getName(false) + $this->getName(false), ); } @@ -1222,8 +1222,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Warning( implode( "\n", - array_unique($this->warnings) - ) + array_unique($this->warnings), + ), ); } @@ -1596,7 +1596,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T { if (trim($this->name) === '') { throw new Exception( - 'PHPUnit\Framework\TestCase::$name must be a non-blank string.' + 'PHPUnit\Framework\TestCase::$name must be a non-blank string.', ); } @@ -1617,15 +1617,15 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $exception, LogicalOr::fromConstraints( new ExceptionConstraint(Error::class), - new ExceptionConstraint(\Error::class) - ) + new ExceptionConstraint(\Error::class), + ), ); } else { $this->assertThat( $exception, new ExceptionConstraint( - $this->expectedException - ) + $this->expectedException, + ), ); } } @@ -1634,8 +1634,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->assertThat( $exception, new ExceptionMessage( - $this->expectedExceptionMessage - ) + $this->expectedExceptionMessage, + ), ); } @@ -1643,8 +1643,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->assertThat( $exception, new ExceptionMessageRegularExpression( - $this->expectedExceptionMessageRegExp - ) + $this->expectedExceptionMessageRegExp, + ), ); } @@ -1652,8 +1652,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->assertThat( $exception, new ExceptionCode( - $this->expectedExceptionCode - ) + $this->expectedExceptionCode, + ), ); } @@ -1664,8 +1664,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->assertThat( null, new ExceptionConstraint( - $this->expectedException - ) + $this->expectedException, + ), ); } elseif ($this->expectedExceptionMessage !== null) { $this->numAssertions++; @@ -1673,8 +1673,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new AssertionFailedError( sprintf( 'Failed asserting that exception with message "%s" is thrown', - $this->expectedExceptionMessage - ) + $this->expectedExceptionMessage, + ), ); } elseif ($this->expectedExceptionMessageRegExp !== null) { $this->numAssertions++; @@ -1682,8 +1682,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new AssertionFailedError( sprintf( 'Failed asserting that exception with message matching "%s" is thrown', - $this->expectedExceptionMessageRegExp - ) + $this->expectedExceptionMessageRegExp, + ), ); } elseif ($this->expectedExceptionCode !== null) { $this->numAssertions++; @@ -1691,8 +1691,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new AssertionFailedError( sprintf( 'Failed asserting that exception with code "%s" is thrown', - $this->expectedExceptionCode - ) + $this->expectedExceptionCode, + ), ); } @@ -1717,8 +1717,8 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T sprintf( 'INI setting "%s" could not be set to "%s".', $varName, - $newValue - ) + $newValue, + ), ); } } @@ -1753,7 +1753,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Exception( 'The locale functionality is not implemented on your platform, ' . 'the specified locale does not exist or the category name is ' . - 'invalid.' + 'invalid.', ); } } @@ -1826,7 +1826,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -1836,7 +1836,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T static function (string $method) use ($reflector) { return !$reflector->hasMethod($method); - } + }, ); if ($mockedMethodsThatDontExist) { @@ -1844,18 +1844,18 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T sprintf( 'createPartialMock() called with method(s) %s that do not exist in %s. This will not be allowed in future versions of PHPUnit.', implode(', ', $mockedMethodsThatDontExist), - $originalClassName - ) + $originalClassName, + ), ); } return $this->getMockBuilder($originalClassName) - ->disableOriginalConstructor() - ->disableOriginalClone() - ->disableArgumentCloning() - ->disallowMockingUnknownTypes() - ->setMethods(empty($methods) ? null : $methods) - ->getMock(); + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->disallowMockingUnknownTypes() + ->setMethods(empty($methods) ? null : $methods) + ->getMock(); } /** @@ -1870,9 +1870,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T protected function createTestProxy(string $originalClassName, array $constructorArguments = []): MockObject { return $this->getMockBuilder($originalClassName) - ->setConstructorArgs($constructorArguments) - ->enableProxyingToOriginalMethods() - ->getMock(); + ->setConstructorArgs($constructorArguments) + ->enableProxyingToOriginalMethods() + ->getMock(); } /** @@ -1902,7 +1902,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $callOriginalConstructor, $callOriginalClone, $callAutoload, - $cloneArguments + $cloneArguments, ); return get_class($mock); @@ -1931,7 +1931,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $callOriginalClone, $callAutoload, $mockedMethods, - $cloneArguments + $cloneArguments, ); $this->registerMockObject($mockObject); @@ -1963,7 +1963,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $wsdlFile, $originalClassName, $methods, - $options + $options, ) ); } @@ -1975,7 +1975,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $mockClassName, $callOriginalConstructor, false, - false + false, ); $this->registerMockObject($mockObject); @@ -2002,7 +2002,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $callOriginalClone, $callAutoload, $mockedMethods, - $cloneArguments + $cloneArguments, ); $this->registerMockObject($mockObject); @@ -2024,7 +2024,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $traitClassName, $callAutoload, $callOriginalConstructor, - $arguments + $arguments, ); } @@ -2088,7 +2088,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } $mockObject->__phpunit_verify( - $this->shouldInvocationMockerBeReset($mockObject) + $this->shouldInvocationMockerBeReset($mockObject), ); } @@ -2121,7 +2121,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $missingRequirements = TestUtil::getMissingRequirements( static::class, - $this->name + $this->name, ); if (!empty($missingRequirements)) { @@ -2187,9 +2187,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->result->addError( $this, new SkippedTestError( - 'This test depends on a test that is larger than itself.' + 'This test depends on a test that is larger than itself.', ), - 0 + 0, ); return false; @@ -2222,9 +2222,9 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->result->addError( $this, new SkippedTestError( - 'This method has an invalid @depends annotation.' + 'This method has an invalid @depends annotation.', ), - 0 + 0, ); $this->result->endTest($this, 0); @@ -2241,10 +2241,10 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T new SkippedTestError( sprintf( 'This test depends on "%s" to pass.', - $dependency->getTarget() - ) + $dependency->getTarget(), + ), ), - 0 + 0, ); $this->result->endTest($this, 0); @@ -2261,10 +2261,10 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T new Warning( sprintf( 'This test depends on "%s" which does not exist.', - $dependency->getTarget() - ) + $dependency->getTarget(), + ), ), - 0 + 0, ); $this->result->endTest($this, 0); @@ -2301,7 +2301,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T } throw new RiskyTestError( - 'Test code or tested code did not (only) close its own output buffers' + 'Test code or tested code did not (only) close its own output buffers', ); } @@ -2341,7 +2341,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T try { $this->compareGlobalStateSnapshots( $this->snapshot, - $this->createGlobalStateSnapshot($this->backupGlobals === true) + $this->createGlobalStateSnapshot($this->backupGlobals === true), ); } catch (RiskyTestError $rte) { // Intentionally left empty @@ -2419,7 +2419,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T false, false, false, - false + false, ); } @@ -2435,13 +2435,13 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->compareGlobalStateSnapshotPart( $before->globalVariables(), $after->globalVariables(), - "--- Global variables before the test\n+++ Global variables after the test\n" + "--- Global variables before the test\n+++ Global variables after the test\n", ); $this->compareGlobalStateSnapshotPart( $before->superGlobalVariables(), $after->superGlobalVariables(), - "--- Super-global variables before the test\n+++ Super-global variables after the test\n" + "--- Super-global variables before the test\n+++ Super-global variables after the test\n", ); } @@ -2449,7 +2449,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->compareGlobalStateSnapshotPart( $before->staticAttributes(), $after->staticAttributes(), - "--- Static attributes before the test\n+++ Static attributes after the test\n" + "--- Static attributes before the test\n+++ Static attributes after the test\n", ); } } @@ -2465,11 +2465,11 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $diff = $differ->diff( $exporter->export($before), - $exporter->export($after) + $exporter->export($after), ); throw new RiskyTestError( - $diff + $diff, ); } } @@ -2527,7 +2527,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T $this->registerMockObjectsFromTestArguments( $testArgument, - $visited + $visited, ); } } @@ -2538,7 +2538,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T { $annotations = TestUtil::parseTestMethodAnnotations( static::class, - $this->name + $this->name, ); if (isset($annotations['method']['doesNotPerformAssertions'])) { @@ -2598,7 +2598,7 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -2660,10 +2660,10 @@ abstract class TestCase extends Assert implements Reorderable, SelfDescribing, T private function createMockObject(string $originalClassName): MockObject { return $this->getMockBuilder($originalClassName) - ->disableOriginalConstructor() - ->disableOriginalClone() - ->disableArgumentCloning() - ->disallowMockingUnknownTypes() - ->getMock(); + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->disallowMockingUnknownTypes() + ->getMock(); } } diff --git a/vendor/phpunit/phpunit/src/Framework/TestFailure.php b/vendor/phpunit/phpunit/src/Framework/TestFailure.php index 0764bc78..f49dfc35 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestFailure.php +++ b/vendor/phpunit/phpunit/src/Framework/TestFailure.php @@ -95,7 +95,7 @@ final class TestFailure return sprintf( '%s: %s', $this->testName, - $this->thrownException->getMessage() + $this->thrownException->getMessage(), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/TestResult.php b/vendor/phpunit/phpunit/src/Framework/TestResult.php index 22150a5a..2c487255 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestResult.php +++ b/vendor/phpunit/phpunit/src/Framework/TestResult.php @@ -460,7 +460,7 @@ final class TestResult implements Countable 'result' => $test->getResult(), 'size' => TestUtil::getSize( $class, - $test->getName(false) + $test->getName(false), ), ]; @@ -646,7 +646,7 @@ final class TestResult implements Countable if ($test instanceof TestCase) { $test->setRegisterMockObjectsFromTestArgumentsRecursively( - $this->registerMockObjectsFromTestArgumentsRecursively + $this->registerMockObjectsFromTestArgumentsRecursively, ); $isAnyCoverageRequired = TestUtil::requiresCodeCoverageDataCollection($test); @@ -667,7 +667,7 @@ final class TestResult implements Countable $this->convertDeprecationsToExceptions, $this->convertErrorsToExceptions, $this->convertNoticesToExceptions, - $this->convertWarningsToExceptions + $this->convertWarningsToExceptions, ); $errorHandler->register(); @@ -731,9 +731,9 @@ final class TestResult implements Countable $this->addFailure( $test, new RiskyTestError( - $e->getMessage() + $e->getMessage(), ), - $_timeout + $_timeout, ); $risky = true; @@ -758,10 +758,10 @@ final class TestResult implements Countable '%s in %s:%s', $e->getMessage(), $frame['file'] ?? $e->getFile(), - $frame['line'] ?? $e->getLine() + $frame['line'] ?? $e->getLine(), ), 0, - $e + $e, ); } catch (Warning $e) { $warning = true; @@ -794,10 +794,10 @@ final class TestResult implements Countable '%s() used in %s:%s', $function['function'], $function['filename'], - $function['lineno'] - ) + $function['lineno'], + ), ), - $time + $time, ); } } @@ -812,7 +812,7 @@ final class TestResult implements Countable if ($this->forceCoversAnnotation && !$error && !$failure && !$warning && !$incomplete && !$skipped && !$risky) { $annotations = TestUtil::parseTestMethodAnnotations( get_class($test), - $test->getName(false) + $test->getName(false), ); if (!isset($annotations['class']['covers']) && @@ -822,9 +822,9 @@ final class TestResult implements Countable $this->addFailure( $test, new MissingCoversAnnotationException( - 'This test does not have a @covers annotation but is expected to have one' + 'This test does not have a @covers annotation but is expected to have one', ), - $time + $time, ); $risky = true; @@ -840,20 +840,20 @@ final class TestResult implements Countable try { $linesToBeCovered = TestUtil::getLinesToBeCovered( get_class($test), - $test->getName(false) + $test->getName(false), ); $linesToBeUsed = TestUtil::getLinesToBeUsed( get_class($test), - $test->getName(false) + $test->getName(false), ); } catch (InvalidCoversTargetException $cce) { $this->addWarning( $test, new Warning( - $cce->getMessage() + $cce->getMessage(), ), - $time + $time, ); } } @@ -862,12 +862,12 @@ final class TestResult implements Countable $this->codeCoverage->stop( $append, $linesToBeCovered, - $linesToBeUsed + $linesToBeUsed, ); } catch (UnintentionallyCoveredCodeException $cce) { $unintentionallyCoveredCodeError = new UnintentionallyCoveredCodeError( 'This test executed code that is not listed as code to be covered or used:' . - PHP_EOL . $cce->getMessage() + PHP_EOL . $cce->getMessage(), ); } catch (OriginalCodeCoverageException $cce) { $error = true; @@ -892,7 +892,7 @@ final class TestResult implements Countable $this->addFailure( $test, $unintentionallyCoveredCodeError, - $time + $time, ); } elseif ($this->beStrictAboutTestsThatDoNotTestAnything && !$test->doesNotPerformAssertions() && @@ -904,7 +904,7 @@ final class TestResult implements Countable throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -919,7 +919,7 @@ final class TestResult implements Countable throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -931,10 +931,10 @@ final class TestResult implements Countable sprintf( "This test did not perform any assertions\n\n%s:%d", $reflected->getFileName(), - $reflected->getStartLine() - ) + $reflected->getStartLine(), + ), ), - $time + $time, ); } elseif ($this->beStrictAboutTestsThatDoNotTestAnything && $test->doesNotPerformAssertions() && @@ -944,10 +944,10 @@ final class TestResult implements Countable new RiskyTestError( sprintf( 'This test is annotated with "@doesNotPerformAssertions" but performed %d assertions', - $test->getNumAssertions() - ) + $test->getNumAssertions(), + ), ), - $time + $time, ); } elseif ($this->beStrictAboutOutputDuringTests && $test->hasOutput()) { $this->addFailure( @@ -955,24 +955,24 @@ final class TestResult implements Countable new OutputError( sprintf( 'This test printed output: %s', - $test->getActualOutput() - ) + $test->getActualOutput(), + ), ), - $time + $time, ); } elseif ($this->beStrictAboutTodoAnnotatedTests && $test instanceof TestCase) { $annotations = TestUtil::parseTestMethodAnnotations( get_class($test), - $test->getName(false) + $test->getName(false), ); if (isset($annotations['method']['todo'])) { $this->addFailure( $test, new RiskyTestError( - 'Test method is annotated with @todo' + 'Test method is annotated with @todo', ), - $time + $time, ); } } diff --git a/vendor/phpunit/phpunit/src/Framework/TestSuite.php b/vendor/phpunit/phpunit/src/Framework/TestSuite.php index e7cef62e..f537eb93 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestSuite.php +++ b/vendor/phpunit/phpunit/src/Framework/TestSuite.php @@ -166,7 +166,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test if (!is_string($theClass) && !$theClass instanceof ReflectionClass) { throw InvalidArgumentException::create( 1, - 'ReflectionClass object or string' + 'ReflectionClass object or string', ); } @@ -184,7 +184,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -215,9 +215,9 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test new WarningTestCase( sprintf( 'Class "%s" has no public constructor.', - $theClass->getName() - ) - ) + $theClass->getName(), + ), + ), ); return; @@ -236,9 +236,9 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test new WarningTestCase( sprintf( 'No tests found in class "%s".', - $theClass->getName() - ) - ) + $theClass->getName(), + ), + ), ); } @@ -267,7 +267,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -310,7 +310,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test if (!(is_object($testClass) || (is_string($testClass) && class_exists($testClass)))) { throw InvalidArgumentException::create( 1, - 'class name or object' + 'class name or object', ); } @@ -322,7 +322,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -336,21 +336,21 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test if (!$testClass->isAbstract() && $testClass->hasMethod(BaseTestRunner::SUITE_METHODNAME)) { try { $method = $testClass->getMethod( - BaseTestRunner::SUITE_METHODNAME + BaseTestRunner::SUITE_METHODNAME, ); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd if ($method->isStatic()) { $this->addTest( - $method->invoke(null, $testClass->getName()) + $method->invoke(null, $testClass->getName()), ); $suiteMethod = true; @@ -425,7 +425,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -447,7 +447,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -460,8 +460,8 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test $this->addWarning( sprintf( 'Abstract test case classes with "Test" suffix are deprecated (%s)', - $class->getName() - ) + $class->getName(), + ), ); } @@ -469,14 +469,14 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test if ($class->hasMethod(BaseTestRunner::SUITE_METHODNAME)) { try { $method = $class->getMethod( - BaseTestRunner::SUITE_METHODNAME + BaseTestRunner::SUITE_METHODNAME, ); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -493,7 +493,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test $expectedClassName = substr( $expectedClassName, 0, - $pos + $pos, ); } @@ -503,8 +503,8 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test "Test case class not matching filename is deprecated\n in %s\n Class name was '%s', expected '%s'", $filename, $class->getShortName(), - $expectedClassName - ) + $expectedClassName, + ), ); } @@ -517,8 +517,8 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test $this->addWarning( sprintf( "Multiple test case classes per file is deprecated\n in %s", - $filename - ) + $filename, + ), ); } @@ -573,7 +573,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test { return (string) $key; }, - array_keys($this->groups) + array_keys($this->groups), ); } @@ -628,7 +628,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test call_user_func([$this->name, $beforeClassMethod]); } } - } catch (SkippedTestSuiteError|SkippedTestError $error) { + } catch (SkippedTestError|SkippedTestSuiteError $error) { foreach ($this->tests() as $test) { $result->startTest($test); $result->addFailure($test, $error, 0); @@ -656,7 +656,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test $result->addFailure( $test, new SkippedTestError('Test skipped because of an error in hook method'), - 0 + 0, ); } @@ -857,7 +857,7 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test } $this->requiredTests = ExecutionOrderDependency::mergeUnique( ExecutionOrderDependency::filterInvalid($this->requiredTests), - $test->requires() + $test->requires(), ); } @@ -891,13 +891,13 @@ class TestSuite implements IteratorAggregate, Reorderable, SelfDescribing, Test if ($test instanceof TestCase || $test instanceof DataProviderTestSuite) { $test->setDependencies( - TestUtil::getDependencies($class->getName(), $methodName) + TestUtil::getDependencies($class->getName(), $methodName), ); } $this->addTest( $test, - TestUtil::getGroups($class->getName(), $methodName) + TestUtil::getGroups($class->getName(), $methodName), ); } diff --git a/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php b/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php index 76b12fcf..27c9d8b4 100644 --- a/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php +++ b/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php @@ -67,7 +67,7 @@ final class TestSuiteIterator implements RecursiveIterator { if (!$this->hasChildren()) { throw new NoChildTestSuiteException( - 'The current item is not a TestSuite instance and therefore does not have any children.' + 'The current item is not a TestSuite instance and therefore does not have any children.', ); } diff --git a/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php b/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php index e1e41bc4..d27c6b57 100644 --- a/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php +++ b/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php @@ -15,17 +15,17 @@ namespace PHPUnit\Framework; final class WarningTestCase extends TestCase { /** - * @var bool + * @var ?bool */ protected $backupGlobals = false; /** - * @var bool + * @var ?bool */ protected $backupStaticAttributes = false; /** - * @var bool + * @var ?bool */ protected $runTestInSeparateProcess = false; diff --git a/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php b/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php index 75a70ca5..bbef329f 100644 --- a/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php +++ b/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php @@ -91,7 +91,7 @@ abstract class BaseTestRunner /** @var string[] $files */ $files = (new FileIteratorFacade)->getFilesAsArray( $suiteClassFile, - $suffixes + $suffixes, ); $suite = new TestSuite($suiteClassFile); @@ -109,7 +109,7 @@ abstract class BaseTestRunner try { $testClass = $this->loadSuiteClass( - $suiteClassFile + $suiteClassFile, ); } catch (\PHPUnit\Exception $e) { $this->runFailed($e->getMessage()); @@ -122,7 +122,7 @@ abstract class BaseTestRunner if (!$suiteMethod->isStatic()) { $this->runFailed( - 'suite() method must be static.' + 'suite() method must be static.', ); return null; diff --git a/vendor/phpunit/phpunit/src/Runner/DefaultTestResultCache.php b/vendor/phpunit/phpunit/src/Runner/DefaultTestResultCache.php index cc22b250..f9d8a90d 100644 --- a/vendor/phpunit/phpunit/src/Runner/DefaultTestResultCache.php +++ b/vendor/phpunit/phpunit/src/Runner/DefaultTestResultCache.php @@ -107,7 +107,7 @@ final class DefaultTestResultCache implements TestResultCache $data = json_decode( file_get_contents($this->cacheFilename), - true + true, ); if ($data === null) { @@ -138,8 +138,8 @@ final class DefaultTestResultCache implements TestResultCache throw new Exception( sprintf( 'Cannot create directory "%s" for result cache file', - $this->cacheFilename - ) + $this->cacheFilename, + ), ); } @@ -150,9 +150,9 @@ final class DefaultTestResultCache implements TestResultCache 'version' => self::VERSION, 'defects' => $this->defects, 'times' => $this->times, - ] + ], ), - LOCK_EX + LOCK_EX, ); } } diff --git a/vendor/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php b/vendor/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php index 88f7ccad..c57e70e7 100644 --- a/vendor/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php +++ b/vendor/phpunit/phpunit/src/Runner/Extension/ExtensionHandler.php @@ -35,8 +35,8 @@ final class ExtensionHandler throw new Exception( sprintf( 'Class "%s" does not implement a PHPUnit\Runner\Hook interface', - $extensionConfiguration->className() - ) + $extensionConfiguration->className(), + ), ); } @@ -56,8 +56,8 @@ final class ExtensionHandler throw new Exception( sprintf( 'Class "%s" does not implement the PHPUnit\Framework\TestListener interface', - $listenerConfiguration->className() - ) + $listenerConfiguration->className(), + ), ); } @@ -77,7 +77,7 @@ final class ExtensionHandler throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } @@ -110,8 +110,8 @@ final class ExtensionHandler throw new Exception( sprintf( 'Class "%s" does not exist', - $extensionConfiguration->className() - ) + $extensionConfiguration->className(), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Runner/Extension/PharLoader.php b/vendor/phpunit/phpunit/src/Runner/Extension/PharLoader.php index e76e12ce..c65b1948 100644 --- a/vendor/phpunit/phpunit/src/Runner/Extension/PharLoader.php +++ b/vendor/phpunit/phpunit/src/Runner/Extension/PharLoader.php @@ -9,7 +9,11 @@ */ namespace PHPUnit\Runner\Extension; +use function count; +use function explode; +use function implode; use function is_file; +use function strpos; use PharIo\Manifest\ApplicationName; use PharIo\Manifest\Exception as ManifestException; use PharIo\Manifest\ManifestLoader; @@ -39,7 +43,7 @@ final class PharLoader try { $applicationName = new ApplicationName('phpunit/phpunit'); - $version = new PharIoVersion(Version::series()); + $version = new PharIoVersion($this->phpunitVersion()); $manifest = ManifestLoader::fromFile('phar://' . $file . '/manifest.xml'); if (!$manifest->isExtensionFor($applicationName)) { @@ -74,4 +78,21 @@ final class PharLoader 'notLoadedExtensions' => $notLoadedExtensions, ]; } + + private function phpunitVersion(): string + { + $version = Version::id(); + + if (strpos($version, '-') === false) { + return $version; + } + + $parts = explode('.', explode('-', $version)[0]); + + if (count($parts) === 2) { + $parts[] = 0; + } + + return implode('.', $parts); + } } diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php b/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php index 3f79da54..b7d83b9f 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php @@ -39,8 +39,8 @@ final class Factory throw new Exception( sprintf( 'Class "%s" does not extend RecursiveFilterIterator', - $filter->name - ) + $filter->name, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php index 42ca77a3..b203c196 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php @@ -35,7 +35,7 @@ abstract class GroupFilterIterator extends RecursiveFilterIterator if (in_array((string) $group, $groups, true)) { $testHashes = array_map( 'spl_object_hash', - $tests + $tests, ); $this->groupTests = array_merge($this->groupTests, $testHashes); diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php index 7057e1c4..45c62f05 100644 --- a/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php +++ b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php @@ -96,7 +96,7 @@ final class NameFilterIterator extends RecursiveFilterIterator if (isset($matches[3]) && $matches[2] < $matches[3]) { $filter = sprintf( '%s.*with data set #(\d+)$', - $matches[1] + $matches[1], ); $this->filterMin = (int) $matches[2]; @@ -105,7 +105,7 @@ final class NameFilterIterator extends RecursiveFilterIterator $filter = sprintf( '%s.*with data set #%s$', $matches[1], - $matches[2] + $matches[2], ); } } // Handles: @@ -115,7 +115,7 @@ final class NameFilterIterator extends RecursiveFilterIterator $filter = sprintf( '%s.*with data set "%s"$', $matches[1], - $matches[2] + $matches[2], ); } @@ -126,8 +126,8 @@ final class NameFilterIterator extends RecursiveFilterIterator str_replace( '/', '\\/', - $filter - ) + $filter, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php b/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php index 6590102d..988b0ece 100644 --- a/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php +++ b/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php @@ -91,8 +91,8 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test throw new Exception( sprintf( 'File "%s" does not exist.', - $filename - ) + $filename, + ), ); } @@ -223,7 +223,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $trace[0]['file'], $trace[0]['line'], $trace, - $comparisonFailure ? $diff : '' + $comparisonFailure ? $diff : '', ); } @@ -408,7 +408,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $result->addFailure( $this, new SyntheticSkippedError($message, 0, $trace[0]['file'], $trace[0]['line'], $trace), - 0 + 0, ); $result->endTest($this, 0); @@ -489,7 +489,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test foreach ($unsupportedSections as $section) { if (isset($sections[$section])) { throw new Exception( - "PHPUnit does not support PHPT {$section} sections" + "PHPUnit does not support PHPT {$section} sections", ); } } @@ -520,8 +520,8 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test sprintf( 'Could not load --%s-- %s for PHPT file', $section . '_EXTERNAL', - $testDirectory . $externalFilename - ) + $testDirectory . $externalFilename, + ), ); } @@ -579,7 +579,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test "'" . dirname($this->filename) . "'", "'" . $this->filename . "'", ], - $code + $code, ); } @@ -599,7 +599,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test $files = $this->getCoverageFiles(); $template = new Template( - __DIR__ . '/../Util/PHP/Template/PhptTestCase.tpl' + __DIR__ . '/../Util/PHP/Template/PhptTestCase.tpl', ); $composerAutoload = '\'\''; @@ -619,7 +619,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { $globals = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . var_export( $GLOBALS['__PHPUNIT_BOOTSTRAP'], - true + true, ) . ";\n"; } @@ -638,7 +638,7 @@ final class PhptTestCase implements Reorderable, SelfDescribing, Test 'coverageFile' => $files['coverage'], 'driverMethod' => $pathCoverage ? 'forLineAndPathCoverage' : 'forLineCoverage', 'codeCoverageCacheDirectory' => $codeCoverageCacheDirectory, - ] + ], ); file_put_contents($files['job'], $job); diff --git a/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php b/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php index 0ed8330e..f957e81a 100644 --- a/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php +++ b/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php @@ -43,7 +43,7 @@ final class StandardTestSuiteLoader implements TestSuiteLoader FileLoader::checkAndLoad($suiteClassFile); $loadedClasses = array_values( - array_diff(get_declared_classes(), $loadedClasses) + array_diff(get_declared_classes(), $loadedClasses), ); if (empty($loadedClasses)) { @@ -51,8 +51,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Class %s could not be found in %s', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } } @@ -76,8 +76,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Class %s could not be found in %s', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } @@ -88,7 +88,7 @@ final class StandardTestSuiteLoader implements TestSuiteLoader throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -99,8 +99,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Class %s declared in %s is abstract', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } @@ -116,8 +116,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Method %s::suite() declared in %s is abstract', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } @@ -126,8 +126,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Method %s::suite() declared in %s is not public', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } @@ -136,8 +136,8 @@ final class StandardTestSuiteLoader implements TestSuiteLoader sprintf( 'Method %s::suite() declared in %s is not static', $suiteClassName, - $suiteClassFile - ) + $suiteClassFile, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php index 64ad845c..9ec82b60 100644 --- a/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php +++ b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php @@ -123,7 +123,7 @@ final class TestSuiteSorter if (!in_array($order, $allowedOrders, true)) { throw new Exception( - '$order must be one of TestSuiteSorter::ORDER_[DEFAULT|REVERSED|RANDOMIZED|DURATION|SIZE]' + '$order must be one of TestSuiteSorter::ORDER_[DEFAULT|REVERSED|RANDOMIZED|DURATION|SIZE]', ); } @@ -134,7 +134,7 @@ final class TestSuiteSorter if (!in_array($orderDefects, $allowedOrderDefects, true)) { throw new Exception( - '$orderDefects must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_DEFECTS_FIRST' + '$orderDefects must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_DEFECTS_FIRST', ); } @@ -240,7 +240,7 @@ final class TestSuiteSorter function ($left, $right) { return $this->cmpDefectPriorityAndTime($left, $right); - } + }, ); return $tests; @@ -256,7 +256,7 @@ final class TestSuiteSorter function ($left, $right) { return $this->cmpDuration($left, $right); - } + }, ); return $tests; @@ -272,7 +272,7 @@ final class TestSuiteSorter function ($left, $right) { return $this->cmpSize($left, $right); - } + }, ); return $tests; diff --git a/vendor/phpunit/phpunit/src/Runner/Version.php b/vendor/phpunit/phpunit/src/Runner/Version.php index 268045a4..d2c68bc3 100644 --- a/vendor/phpunit/phpunit/src/Runner/Version.php +++ b/vendor/phpunit/phpunit/src/Runner/Version.php @@ -41,7 +41,7 @@ final class Version } if (self::$version === '') { - self::$version = (new VersionId('9.6.8', dirname(__DIR__, 2)))->getVersion(); + self::$version = (new VersionId('9.6.12', dirname(__DIR__, 2)))->getVersion(); } return self::$version; diff --git a/vendor/phpunit/phpunit/src/TextUI/CliArguments/Builder.php b/vendor/phpunit/phpunit/src/TextUI/CliArguments/Builder.php index da488082..51f0a513 100644 --- a/vendor/phpunit/phpunit/src/TextUI/CliArguments/Builder.php +++ b/vendor/phpunit/phpunit/src/TextUI/CliArguments/Builder.php @@ -129,13 +129,13 @@ final class Builder $options = (new CliParser)->parse( $parameters, self::SHORT_OPTIONS, - array_merge(self::LONG_OPTIONS, $additionalLongOptions) + array_merge(self::LONG_OPTIONS, $additionalLongOptions), ); } catch (CliParserException $e) { throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } @@ -880,7 +880,7 @@ final class Builder $verbose, $version, $coverageFilter, - $xdebugFilterFile + $xdebugFilterFile, ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Command.php b/vendor/phpunit/phpunit/src/TextUI/Command.php index 0bebad6a..31f71795 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Command.php +++ b/vendor/phpunit/phpunit/src/TextUI/Command.php @@ -99,7 +99,7 @@ class Command throw new RuntimeException( $t->getMessage(), (int) $t->getCode(), - $t + $t, ); } } @@ -118,7 +118,7 @@ class Command } else { $suite = $runner->getTest( $this->arguments['test'], - $this->arguments['testSuffixes'] + $this->arguments['testSuffixes'], ); } @@ -256,8 +256,8 @@ class Command $this->exitWithErrorMessage( sprintf( 'unrecognized --order-by option: %s', - $arguments->unrecognizedOrderBy() - ) + $arguments->unrecognizedOrderBy(), + ), ); } @@ -270,7 +270,7 @@ class Command if ($arguments->hasIncludePath()) { ini_set( 'include_path', - $arguments->includePath() . PATH_SEPARATOR . ini_get('include_path') + $arguments->includePath() . PATH_SEPARATOR . ini_get('include_path'), ); } @@ -290,8 +290,8 @@ class Command $this->exitWithErrorMessage( sprintf( 'Cannot open file "%s".', - $arguments->argument() - ) + $arguments->argument(), + ), ); } } @@ -367,7 +367,7 @@ class Command $this->arguments['printer'] = $this->handlePrinter( $phpunitConfiguration->printerClass(), - $file + $file, ); } @@ -376,7 +376,7 @@ class Command $this->arguments['loader'] = $this->handleLoader( $phpunitConfiguration->testSuiteLoaderClass(), - $file + $file, ); } @@ -388,7 +388,7 @@ class Command try { $this->arguments['test'] = (new TestSuiteMapper)->map( $this->arguments['configurationObject']->testSuite(), - $this->arguments['testsuite'] ?? '' + $this->arguments['testsuite'] ?? '', ); } catch (Exception $e) { $this->printVersionString(); @@ -429,7 +429,7 @@ class Command if (!class_exists($loaderClass, false)) { if ($loaderFile == '') { $loaderFile = Filesystem::classNameToFilename( - $loaderClass + $loaderClass, ); } @@ -453,7 +453,7 @@ class Command throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -474,8 +474,8 @@ class Command $this->exitWithErrorMessage( sprintf( 'Could not use "%s" as loader.', - $loaderClass - ) + $loaderClass, + ), ); return null; @@ -491,7 +491,7 @@ class Command if (!class_exists($printerClass, false)) { if ($printerFile === '') { $printerFile = Filesystem::classNameToFilename( - $printerClass + $printerClass, ); } @@ -511,8 +511,8 @@ class Command $this->exitWithErrorMessage( sprintf( 'Could not use "%s" as printer: class does not exist', - $printerClass - ) + $printerClass, + ), ); } @@ -523,7 +523,7 @@ class Command throw new ReflectionException( $e->getMessage(), $e->getCode(), - $e + $e, ); // @codeCoverageIgnoreEnd } @@ -533,8 +533,8 @@ class Command sprintf( 'Could not use "%s" as printer: class does not implement %s', $printerClass, - ResultPrinter::class - ) + ResultPrinter::class, + ), ); } @@ -542,8 +542,8 @@ class Command $this->exitWithErrorMessage( sprintf( 'Could not use "%s" as printer: class cannot be instantiated', - $printerClass - ) + $printerClass, + ), ); } @@ -574,7 +574,7 @@ class Command PHP_EOL, $t->getMessage(), PHP_EOL, - $t->getTraceAsString() + $t->getTraceAsString(), ); while ($t = $t->getPrevious()) { @@ -605,7 +605,7 @@ class Command printf( 'You are not using the latest version of PHPUnit.' . PHP_EOL . 'The latest version is PHPUnit %s.' . PHP_EOL, - $latestVersion + $latestVersion, ); } else { print 'You are using the latest version of PHPUnit.' . PHP_EOL; @@ -661,7 +661,7 @@ class Command 'groups', 'excludeGroups', 'testsuite', - ] + ], ); print 'Available test group(s):' . PHP_EOL; @@ -676,7 +676,7 @@ class Command printf( ' - %s' . PHP_EOL, - $group + $group, ); } @@ -702,7 +702,7 @@ class Command 'groups', 'excludeGroups', 'testsuite', - ] + ], ); print 'Available test suite(s):' . PHP_EOL; @@ -710,7 +710,7 @@ class Command foreach ($this->arguments['configurationObject']->testSuite() as $testSuite) { printf( ' - %s' . PHP_EOL, - $testSuite->name() + $testSuite->name(), ); } @@ -734,7 +734,7 @@ class Command 'filter', 'groups', 'excludeGroups', - ] + ], ); $renderer = new TextTestListRenderer; @@ -761,7 +761,7 @@ class Command 'filter', 'groups', 'excludeGroups', - ] + ], ); $renderer = new XmlTestListRenderer; @@ -770,7 +770,7 @@ class Command printf( 'Wrote list of tests that would have been run to %s' . PHP_EOL, - $target + $target, ); if ($exit) { @@ -826,8 +826,8 @@ class Command $bootstrapScript, $testsDirectory, $src, - $cacheDirectory - ) + $cacheDirectory, + ), ); print PHP_EOL . 'Generated phpunit.xml in ' . getcwd() . '.' . PHP_EOL; @@ -853,7 +853,7 @@ class Command try { file_put_contents( $filename, - (new Migrator)->migrate($filename) + (new Migrator)->migrate($filename), ); print 'Migrated configuration: ' . $filename . PHP_EOL; @@ -906,7 +906,7 @@ class Command if ($configuration->codeCoverage()->hasNonEmptyListOfFilesToBeIncludedInCodeCoverageReport()) { (new FilterMapper)->map( $filter, - $configuration->codeCoverage() + $configuration->codeCoverage(), ); } elseif (isset($this->arguments['coverageFilter'])) { if (!is_array($this->arguments['coverageFilter'])) { @@ -933,7 +933,7 @@ class Command $cacheDirectory, !$configuration->codeCoverage()->disableCodeCoverageIgnore(), $configuration->codeCoverage()->ignoreDeprecatedCodeUnits(), - $filter + $filter, ); print 'done [' . $timer->stop()->asString() . ']' . PHP_EOL; @@ -971,7 +971,7 @@ class Command 'The %s and %s options cannot be combined, %s is ignored' . PHP_EOL, $this->mapKeyToOptionForWarning($_key), $this->mapKeyToOptionForWarning($key), - $this->mapKeyToOptionForWarning($_key) + $this->mapKeyToOptionForWarning($_key), ); $warningPrinted = true; diff --git a/vendor/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php b/vendor/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php index 408fa133..09de8588 100644 --- a/vendor/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php +++ b/vendor/phpunit/phpunit/src/TextUI/DefaultResultPrinter.php @@ -142,7 +142,7 @@ class DefaultResultPrinter extends Printer implements ResultPrinter if (!in_array($colors, self::AVAILABLE_COLORS, true)) { throw InvalidArgumentException::create( 3, - vsprintf('value from "%s", "%s" or "%s"', self::AVAILABLE_COLORS) + vsprintf('value from "%s", "%s" or "%s"', self::AVAILABLE_COLORS), ); } @@ -271,8 +271,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter $this->write( sprintf( "Test '%s' started\n", - \PHPUnit\Util\Test::describeAsString($test) - ) + \PHPUnit\Util\Test::describeAsString($test), + ), ); } } @@ -286,8 +286,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter $this->write( sprintf( "Test '%s' ended\n", - \PHPUnit\Util\Test::describeAsString($test) - ) + \PHPUnit\Util\Test::describeAsString($test), + ), ); } @@ -326,8 +326,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter ($count == 1) ? 'was' : 'were', $count, $type, - ($count == 1) ? '' : 's' - ) + ($count == 1) ? '' : 's', + ), ); $i = 1; @@ -355,8 +355,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter sprintf( "\n%d) %s\n", $count, - $defect->getTestName() - ) + $defect->getTestName(), + ), ); } @@ -413,7 +413,7 @@ class DefaultResultPrinter extends Printer implements ResultPrinter if (count($result) === 0) { $this->writeWithColor( 'fg-black, bg-yellow', - 'No tests executed!' + 'No tests executed!', ); return; @@ -427,8 +427,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter count($result), (count($result) === 1) ? '' : 's', $this->numAssertions, - ($this->numAssertions === 1) ? '' : 's' - ) + ($this->numAssertions === 1) ? '' : 's', + ), ); return; @@ -443,7 +443,7 @@ class DefaultResultPrinter extends Printer implements ResultPrinter $this->writeWithColor( $color, - 'OK, but incomplete, skipped, or risky tests!' + 'OK, but incomplete, skipped, or risky tests!', ); } else { $this->write("\n"); @@ -453,21 +453,21 @@ class DefaultResultPrinter extends Printer implements ResultPrinter $this->writeWithColor( $color, - 'ERRORS!' + 'ERRORS!', ); } elseif ($result->failureCount()) { $color = 'fg-white, bg-red'; $this->writeWithColor( $color, - 'FAILURES!' + 'FAILURES!', ); } elseif ($result->warningCount()) { $color = 'fg-black, bg-yellow'; $this->writeWithColor( $color, - 'WARNINGS!' + 'WARNINGS!', ); } } @@ -504,8 +504,8 @@ class DefaultResultPrinter extends Printer implements ResultPrinter $this->numTestsWidth . 'd (%3s%%)', $this->numTestsRun, $this->numTests, - floor(($this->numTestsRun / $this->numTests) * 100) - ) + floor(($this->numTestsRun / $this->numTests) * 100), + ), ); if ($this->column == $this->maxColumn) { @@ -574,9 +574,9 @@ class DefaultResultPrinter extends Printer implements ResultPrinter '%s%s: %d', !$first ? ', ' : '', $name, - $count + $count, ), - false + false, ); $first = false; diff --git a/vendor/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php b/vendor/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php index 770ad874..af387bea 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php +++ b/vendor/phpunit/phpunit/src/TextUI/Exception/TestDirectoryNotFoundException.php @@ -22,8 +22,8 @@ final class TestDirectoryNotFoundException extends RuntimeException implements E parent::__construct( sprintf( 'Test directory "%s" not found', - $path - ) + $path, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php b/vendor/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php index 7ffd2c78..3b534f7e 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php +++ b/vendor/phpunit/phpunit/src/TextUI/Exception/TestFileNotFoundException.php @@ -22,8 +22,8 @@ final class TestFileNotFoundException extends RuntimeException implements Except parent::__construct( sprintf( 'Test file "%s" not found', - $path - ) + $path, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/Help.php b/vendor/phpunit/phpunit/src/TextUI/Help.php index 82f305dd..7df19ba5 100644 --- a/vendor/phpunit/phpunit/src/TextUI/Help.php +++ b/vendor/phpunit/phpunit/src/TextUI/Help.php @@ -246,7 +246,7 @@ final class Help { return Color::colorize('fg-cyan', $matches[0]); }, - $arg + $arg, ); $desc = explode(PHP_EOL, wordwrap($option['desc'], $this->maxDescLength, PHP_EOL)); diff --git a/vendor/phpunit/phpunit/src/TextUI/TestRunner.php b/vendor/phpunit/phpunit/src/TextUI/TestRunner.php index 3ba298e8..a1d71300 100644 --- a/vendor/phpunit/phpunit/src/TextUI/TestRunner.php +++ b/vendor/phpunit/phpunit/src/TextUI/TestRunner.php @@ -307,7 +307,7 @@ final class TestRunner extends BaseTestRunner throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -341,8 +341,8 @@ final class TestRunner extends BaseTestRunner new HtmlResultPrinter( $arguments['testdoxHTMLFile'], $arguments['testdoxGroups'], - $arguments['testdoxExcludeGroups'] - ) + $arguments['testdoxExcludeGroups'], + ), ); } @@ -351,22 +351,22 @@ final class TestRunner extends BaseTestRunner new TextResultPrinter( $arguments['testdoxTextFile'], $arguments['testdoxGroups'], - $arguments['testdoxExcludeGroups'] - ) + $arguments['testdoxExcludeGroups'], + ), ); } if (isset($arguments['testdoxXMLFile'])) { $result->addListener( new XmlResultPrinter( - $arguments['testdoxXMLFile'] - ) + $arguments['testdoxXMLFile'], + ), ); } if (isset($arguments['teamcityLogfile'])) { $result->addListener( - new TeamCity($arguments['teamcityLogfile']) + new TeamCity($arguments['teamcityLogfile']), ); } @@ -374,8 +374,8 @@ final class TestRunner extends BaseTestRunner $result->addListener( new JUnit( $arguments['junitLogfile'], - $arguments['reportUselessTests'] - ) + $arguments['reportUselessTests'], + ), ); } @@ -432,7 +432,7 @@ final class TestRunner extends BaseTestRunner (new FilterMapper)->map( $this->codeCoverageFilter, - $codeCoverageConfiguration + $codeCoverageConfiguration, ); } } @@ -449,7 +449,7 @@ final class TestRunner extends BaseTestRunner $codeCoverage = new CodeCoverage( $codeCoverageDriver, - $this->codeCoverageFilter + $this->codeCoverageFilter, ); if (isset($codeCoverageConfiguration) && $codeCoverageConfiguration->hasCacheDirectory()) { @@ -532,21 +532,21 @@ final class TestRunner extends BaseTestRunner $this->writeMessage( 'Configuration', - $arguments['configurationObject']->filename() + $arguments['configurationObject']->filename(), ); } foreach ($arguments['loadedExtensions'] as $extension) { $this->writeMessage( 'Extension', - $extension + $extension, ); } foreach ($arguments['notLoadedExtensions'] as $extension) { $this->writeMessage( 'Extension', - $extension + $extension, ); } } @@ -554,7 +554,7 @@ final class TestRunner extends BaseTestRunner if ($arguments['executionOrder'] === TestSuiteSorter::ORDER_RANDOMIZED) { $this->writeMessage( 'Random Seed', - (string) $arguments['randomOrderSeed'] + (string) $arguments['randomOrderSeed'], ); } @@ -586,7 +586,7 @@ final class TestRunner extends BaseTestRunner $this->writeMessage('Suggestion', 'Migrate your XML configuration using "--migrate-configuration"!'); } else { $this->write( - "\n Warning - The configuration file did not pass validation!\n The following problems have been detected:\n" + "\n Warning - The configuration file did not pass validation!\n The following problems have been detected:\n", ); $this->write($arguments['configurationObject']->validationErrors()); @@ -660,6 +660,21 @@ final class TestRunner extends BaseTestRunner $this->printer->printResult($result); if (isset($codeCoverage)) { + if (isset($arguments['coveragePHP'])) { + $this->codeCoverageGenerationStart('PHP'); + + try { + $writer = new PhpReport; + $writer->process($codeCoverage, $arguments['coveragePHP']); + + $this->codeCoverageGenerationSucceeded(); + + unset($writer); + } catch (CodeCoverageException $e) { + $this->codeCoverageGenerationFailed($e); + } + } + if (isset($arguments['coverageClover'])) { $this->codeCoverageGenerationStart('Clover XML'); @@ -714,8 +729,8 @@ final class TestRunner extends BaseTestRunner $arguments['reportHighLowerBound'], sprintf( ' and PHPUnit %s', - Version::id() - ) + Version::id(), + ), ); $writer->process($codeCoverage, $arguments['coverageHtml']); @@ -728,21 +743,6 @@ final class TestRunner extends BaseTestRunner } } - if (isset($arguments['coveragePHP'])) { - $this->codeCoverageGenerationStart('PHP'); - - try { - $writer = new PhpReport; - $writer->process($codeCoverage, $arguments['coveragePHP']); - - $this->codeCoverageGenerationSucceeded(); - - unset($writer); - } catch (CodeCoverageException $e) { - $this->codeCoverageGenerationFailed($e); - } - } - if (isset($arguments['coverageText'])) { if ($arguments['coverageText'] === 'php://stdout') { $outputStream = $this->printer; @@ -756,11 +756,11 @@ final class TestRunner extends BaseTestRunner $arguments['reportLowUpperBound'], $arguments['reportHighLowerBound'], $arguments['coverageTextShowUncoveredFiles'], - $arguments['coverageTextShowOnlySummary'] + $arguments['coverageTextShowOnlySummary'], ); $outputStream->write( - $processor->process($codeCoverage, $colors) + $processor->process($codeCoverage, $colors), ); } @@ -1023,7 +1023,7 @@ final class TestRunner extends BaseTestRunner foreach ($arguments['unavailableExtensions'] as $extension) { $arguments['warnings'][] = sprintf( 'Extension "%s" is not available', - $extension + $extension, ); } @@ -1033,7 +1033,7 @@ final class TestRunner extends BaseTestRunner if ($loggingConfiguration->hasText()) { $arguments['listeners'][] = new DefaultResultPrinter( $loggingConfiguration->text()->target()->path(), - true + true, ); } @@ -1147,14 +1147,14 @@ final class TestRunner extends BaseTestRunner if (!empty($arguments['excludeGroups'])) { $filterFactory->addFilter( new ReflectionClass(ExcludeGroupFilterIterator::class), - $arguments['excludeGroups'] + $arguments['excludeGroups'], ); } if (!empty($arguments['groups'])) { $filterFactory->addFilter( new ReflectionClass(IncludeGroupFilterIterator::class), - $arguments['groups'] + $arguments['groups'], ); } @@ -1166,8 +1166,8 @@ final class TestRunner extends BaseTestRunner { return '__phpunit_covers_' . $name; }, - $arguments['testsCovering'] - ) + $arguments['testsCovering'], + ), ); } @@ -1179,15 +1179,15 @@ final class TestRunner extends BaseTestRunner { return '__phpunit_uses_' . $name; }, - $arguments['testsUsing'] - ) + $arguments['testsUsing'], + ), ); } if ($arguments['filter']) { $filterFactory->addFilter( new ReflectionClass(NameFilterIterator::class), - $arguments['filter'] + $arguments['filter'], ); } @@ -1204,8 +1204,8 @@ final class TestRunner extends BaseTestRunner sprintf( "%-15s%s\n", $type . ':', - $message - ) + $message, + ), ); $this->messagePrinted = true; @@ -1219,7 +1219,7 @@ final class TestRunner extends BaseTestRunner $arguments['colors'], $arguments['debug'], $arguments['columns'], - $arguments['reverseList'] + $arguments['reverseList'], ); assert($object instanceof ResultPrinter); @@ -1232,8 +1232,8 @@ final class TestRunner extends BaseTestRunner $this->write( sprintf( "\nGenerating code coverage report in %s format ... ", - $format - ) + $format, + ), ); $this->timer->start(); @@ -1244,8 +1244,8 @@ final class TestRunner extends BaseTestRunner $this->write( sprintf( "done [%s]\n", - $this->timer->stop()->asString() - ) + $this->timer->stop()->asString(), + ), ); } @@ -1255,8 +1255,8 @@ final class TestRunner extends BaseTestRunner sprintf( "failed [%s]\n%s\n", $this->timer->stop()->asString(), - $e->getMessage() - ) + $e->getMessage(), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/TestSuiteMapper.php b/vendor/phpunit/phpunit/src/TextUI/TestSuiteMapper.php index 170e6602..a0ea593a 100644 --- a/vendor/phpunit/phpunit/src/TextUI/TestSuiteMapper.php +++ b/vendor/phpunit/phpunit/src/TextUI/TestSuiteMapper.php @@ -60,7 +60,7 @@ final class TestSuiteMapper $directory->path(), $directory->suffix(), $directory->prefix(), - $exclude + $exclude, ); if (!empty($files)) { @@ -96,7 +96,7 @@ final class TestSuiteMapper throw new RuntimeException( $e->getMessage(), $e->getCode(), - $e + $e, ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php index 80abfac7..191113c6 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/CodeCoverage.php @@ -150,7 +150,7 @@ final class CodeCoverage { if (!$this->hasCacheDirectory()) { throw new Exception( - 'No cache directory has been configured' + 'No cache directory has been configured', ); } @@ -222,7 +222,7 @@ final class CodeCoverage { if (!$this->hasClover()) { throw new Exception( - 'Code Coverage report "Clover XML" has not been configured' + 'Code Coverage report "Clover XML" has not been configured', ); } @@ -244,7 +244,7 @@ final class CodeCoverage { if (!$this->hasCobertura()) { throw new Exception( - 'Code Coverage report "Cobertura XML" has not been configured' + 'Code Coverage report "Cobertura XML" has not been configured', ); } @@ -266,7 +266,7 @@ final class CodeCoverage { if (!$this->hasCrap4j()) { throw new Exception( - 'Code Coverage report "Crap4J" has not been configured' + 'Code Coverage report "Crap4J" has not been configured', ); } @@ -288,7 +288,7 @@ final class CodeCoverage { if (!$this->hasHtml()) { throw new Exception( - 'Code Coverage report "HTML" has not been configured' + 'Code Coverage report "HTML" has not been configured', ); } @@ -310,7 +310,7 @@ final class CodeCoverage { if (!$this->hasPhp()) { throw new Exception( - 'Code Coverage report "PHP" has not been configured' + 'Code Coverage report "PHP" has not been configured', ); } @@ -332,7 +332,7 @@ final class CodeCoverage { if (!$this->hasText()) { throw new Exception( - 'Code Coverage report "Text" has not been configured' + 'Code Coverage report "Text" has not been configured', ); } @@ -354,7 +354,7 @@ final class CodeCoverage { if (!$this->hasXml()) { throw new Exception( - 'Code Coverage report "XML" has not been configured' + 'Code Coverage report "XML" has not been configured', ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php index 102c96eb..82be6032 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/CodeCoverage/FilterMapper.php @@ -22,7 +22,7 @@ final class FilterMapper $filter->includeDirectory( $directory->path(), $directory->suffix(), - $directory->prefix() + $directory->prefix(), ); } @@ -34,7 +34,7 @@ final class FilterMapper $filter->excludeDirectory( $directory->path(), $directory->suffix(), - $directory->prefix() + $directory->prefix(), ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php index cc77b1a3..9f6a812a 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Generator.php @@ -67,7 +67,7 @@ EOT; $srcDirectory, $cacheDirectory, ], - self::TEMPLATE + self::TEMPLATE, ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php index c1877317..adf7dce0 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Loader.php @@ -73,7 +73,7 @@ final class Loader throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } @@ -85,7 +85,7 @@ final class Loader throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } @@ -100,7 +100,7 @@ final class Loader $this->logging($filename, $xpath), $this->php($filename, $xpath), $this->phpunit($filename, $document), - $this->testSuite($filename, $xpath) + $this->testSuite($filename, $xpath), ); } @@ -118,9 +118,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -132,9 +132,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -146,9 +146,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -160,9 +160,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -174,9 +174,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -188,9 +188,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -200,7 +200,7 @@ final class Loader $teamCity, $testDoxHtml, $testDoxText, - $testDoxXml + $testDoxXml, ); } @@ -228,42 +228,42 @@ final class Loader switch ($type) { case 'plain': $text = new Text( - new File($target) + new File($target), ); break; case 'junit': $junit = new Junit( - new File($target) + new File($target), ); break; case 'teamcity': $teamCity = new TeamCity( - new File($target) + new File($target), ); break; case 'testdox-html': $testDoxHtml = new TestDoxHtml( - new File($target) + new File($target), ); break; case 'testdox-text': $testDoxText = new TestDoxText( - new File($target) + new File($target), ); break; case 'testdox-xml': $testDoxXml = new TestDoxXml( - new File($target) + new File($target), ); break; @@ -276,7 +276,7 @@ final class Loader $teamCity, $testDoxHtml, $testDoxText, - $testDoxXml + $testDoxXml, ); } @@ -304,7 +304,7 @@ final class Loader $file = $this->toAbsolutePath( $filename, (string) $element->getAttribute('file'), - true + true, ); } @@ -402,38 +402,38 @@ final class Loader if ($cacheDirectory !== null) { $cacheDirectory = new Directory( - $this->toAbsolutePath($filename, $cacheDirectory) + $this->toAbsolutePath($filename, $cacheDirectory), ); } $pathCoverage = $this->getBooleanAttribute( $element, 'pathCoverage', - false + false, ); $includeUncoveredFiles = $this->getBooleanAttribute( $element, 'includeUncoveredFiles', - true + true, ); $processUncoveredFiles = $this->getBooleanAttribute( $element, 'processUncoveredFiles', - false + false, ); $ignoreDeprecatedCodeUnits = $this->getBooleanAttribute( $element, 'ignoreDeprecatedCodeUnits', - false + false, ); $disableCodeCoverageIgnore = $this->getBooleanAttribute( $element, 'disableCodeCoverageIgnore', - false + false, ); } @@ -445,9 +445,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -459,9 +459,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -473,10 +473,10 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), ), - $this->getIntegerAttribute($element, 'threshold', 30) + $this->getIntegerAttribute($element, 'threshold', 30), ); } @@ -488,11 +488,11 @@ final class Loader new Directory( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputDirectory') - ) + (string) $this->getStringAttribute($element, 'outputDirectory'), + ), ), $this->getIntegerAttribute($element, 'lowUpperBound', 50), - $this->getIntegerAttribute($element, 'highLowerBound', 90) + $this->getIntegerAttribute($element, 'highLowerBound', 90), ); } @@ -504,9 +504,9 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), + ), ); } @@ -518,11 +518,11 @@ final class Loader new File( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputFile') - ) + (string) $this->getStringAttribute($element, 'outputFile'), + ), ), $this->getBooleanAttribute($element, 'showUncoveredFiles', false), - $this->getBooleanAttribute($element, 'showOnlySummary', false) + $this->getBooleanAttribute($element, 'showOnlySummary', false), ); } @@ -534,9 +534,9 @@ final class Loader new Directory( $this->toAbsolutePath( $filename, - (string) $this->getStringAttribute($element, 'outputDirectory') - ) - ) + (string) $this->getStringAttribute($element, 'outputDirectory'), + ), + ), ); } @@ -557,7 +557,7 @@ final class Loader $html, $php, $text, - $xml + $xml, ); } @@ -569,13 +569,13 @@ final class Loader $ignoreDeprecatedCodeUnits = $this->getBooleanAttribute( $document->documentElement, 'ignoreDeprecatedCodeUnitsFromCodeCoverage', - false + false, ); $disableCodeCoverageIgnore = $this->getBooleanAttribute( $document->documentElement, 'disableCodeCoverageIgnore', - false + false, ); $includeUncoveredFiles = true; @@ -587,14 +587,14 @@ final class Loader if ($element->hasAttribute('addUncoveredFilesFromWhitelist')) { $includeUncoveredFiles = (bool) $this->getBoolean( (string) $element->getAttribute('addUncoveredFilesFromWhitelist'), - true + true, ); } if ($element->hasAttribute('processUncoveredFilesFromWhitelist')) { $processUncoveredFiles = (bool) $this->getBoolean( (string) $element->getAttribute('processUncoveredFilesFromWhitelist'), - false + false, ); } } @@ -622,14 +622,14 @@ final class Loader switch ($type) { case 'coverage-clover': $clover = new Clover( - new File($target) + new File($target), ); break; case 'coverage-cobertura': $cobertura = new Cobertura( - new File($target) + new File($target), ); break; @@ -637,7 +637,7 @@ final class Loader case 'coverage-crap4j': $crap4j = new Crap4j( new File($target), - $this->getIntegerAttribute($log, 'threshold', 30) + $this->getIntegerAttribute($log, 'threshold', 30), ); break; @@ -646,14 +646,14 @@ final class Loader $html = new CodeCoverageHtml( new Directory($target), $this->getIntegerAttribute($log, 'lowUpperBound', 50), - $this->getIntegerAttribute($log, 'highLowerBound', 90) + $this->getIntegerAttribute($log, 'highLowerBound', 90), ); break; case 'coverage-php': $php = new CodeCoveragePhp( - new File($target) + new File($target), ); break; @@ -662,14 +662,14 @@ final class Loader $text = new CodeCoverageText( new File($target), $this->getBooleanAttribute($log, 'showUncoveredFiles', false), - $this->getBooleanAttribute($log, 'showOnlySummary', false) + $this->getBooleanAttribute($log, 'showOnlySummary', false), ); break; case 'coverage-xml': $xml = new CodeCoverageXml( - new Directory($target) + new Directory($target), ); break; @@ -693,7 +693,7 @@ final class Loader $html, $php, $text, - $xml + $xml, ); } @@ -737,7 +737,7 @@ final class Loader $this->toAbsolutePath($filename, $directoryPath), $directoryNode->hasAttribute('prefix') ? (string) $directoryNode->getAttribute('prefix') : '', $directoryNode->hasAttribute('suffix') ? (string) $directoryNode->getAttribute('suffix') : '.php', - $directoryNode->hasAttribute('group') ? (string) $directoryNode->getAttribute('group') : 'DEFAULT' + $directoryNode->hasAttribute('group') ? (string) $directoryNode->getAttribute('group') : 'DEFAULT', ); } @@ -784,7 +784,7 @@ final class Loader return new Groups( GroupCollection::fromArray($include), - GroupCollection::fromArray($exclude) + GroupCollection::fromArray($exclude), ); } @@ -809,7 +809,7 @@ final class Loader return (bool) $this->getBoolean( (string) $element->getAttribute($attribute), - false + false, ); } @@ -821,7 +821,7 @@ final class Loader return $this->getInteger( (string) $element->getAttribute($attribute), - $default + $default, ); } @@ -862,7 +862,7 @@ final class Loader $iniSettings[] = new IniSetting( (string) $ini->getAttribute('name'), - (string) $ini->getAttribute('value') + (string) $ini->getAttribute('value'), ); } @@ -875,7 +875,7 @@ final class Loader $constants[] = new Constant( (string) $const->getAttribute('name'), - $this->getBoolean($value, $value) + $this->getBoolean($value, $value), ); } @@ -1077,7 +1077,7 @@ final class Loader $this->getBooleanAttribute($document->documentElement, 'backupGlobals', false), $this->getBooleanAttribute($document->documentElement, 'backupStaticAttributes', false), $this->getBooleanAttribute($document->documentElement, 'registerMockObjectsFromTestArgumentsRecursively', false), - $conflictBetweenPrinterClassAndTestdox + $conflictBetweenPrinterClassAndTestdox, ); } @@ -1171,7 +1171,7 @@ final class Loader $prefix, $suffix, $phpVersion, - $phpVersionOperator + $phpVersionOperator, ); } @@ -1201,7 +1201,7 @@ final class Loader $files[] = new TestFile( $this->toAbsolutePath($filename, $file), $phpVersion, - $phpVersionOperator + $phpVersionOperator, ); } @@ -1209,7 +1209,7 @@ final class Loader (string) $element->getAttribute('name'), TestDirectoryCollection::fromArray($directories), TestFileCollection::fromArray($files), - FileCollection::fromArray($exclude) + FileCollection::fromArray($exclude), ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php index abef49f1..2bb66381 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php @@ -28,7 +28,7 @@ final class MigrationBuilder IntroduceCoverageElement::class, MoveAttributesFromRootToCoverage::class, MoveAttributesFromFilterWhitelistToCoverage::class, - MoveWhitelistDirectoriesToCoverage::class, + MoveWhitelistIncludesToCoverage::class, MoveWhitelistExcludesToCoverage::class, RemoveEmptyFilter::class, CoverageCloverToReport::class, @@ -51,8 +51,8 @@ final class MigrationBuilder throw new MigrationBuilderException( sprintf( 'Migration from schema version %s is not supported', - $fromVersion - ) + $fromVersion, + ), ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php index 867a8441..de52857e 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/IntroduceCoverageElement.php @@ -22,7 +22,7 @@ final class IntroduceCoverageElement implements Migration $document->documentElement->insertBefore( $coverage, - $document->documentElement->firstChild + $document->documentElement->firstChild, ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php index e987308b..c07de0ec 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/LogToReportMigration.php @@ -67,7 +67,7 @@ abstract class LogToReportMigration implements Migration private function findLogNode(DOMDocument $document): ?DOMElement { $logNode = (new DOMXPath($document))->query( - sprintf('//logging/log[@type="%s"]', $this->forType()) + sprintf('//logging/log[@type="%s"]', $this->forType()), )->item(0); if (!$logNode instanceof DOMElement) { diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php index c55315fa..17d5f4db 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistExcludesToCoverage.php @@ -47,7 +47,7 @@ final class MoveWhitelistExcludesToCoverage implements Migration if ($targetExclude === null) { $targetExclude = $coverage->appendChild( - $document->createElement('exclude') + $document->createElement('exclude'), ); } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php similarity index 83% rename from vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php rename to vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php index 14e6cec8..c75a6d84 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistDirectoriesToCoverage.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/MoveWhitelistIncludesToCoverage.php @@ -16,7 +16,7 @@ use PHPUnit\Util\Xml\SnapshotNodeList; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ -final class MoveWhitelistDirectoriesToCoverage implements Migration +final class MoveWhitelistIncludesToCoverage implements Migration { /** * @throws MigrationException @@ -39,7 +39,11 @@ final class MoveWhitelistDirectoriesToCoverage implements Migration $coverage->appendChild($include); foreach (SnapshotNodeList::fromNodeList($whitelist->childNodes) as $child) { - if (!$child instanceof DOMElement || $child->nodeName !== 'directory') { + if (!$child instanceof DOMElement) { + continue; + } + + if (!($child->nodeName === 'directory' || $child->nodeName === 'file')) { continue; } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php index 2e86ab6e..ddcfcf07 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/UpdateSchemaLocationTo93.php @@ -21,7 +21,7 @@ final class UpdateSchemaLocationTo93 implements Migration $document->documentElement->setAttributeNS( 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:noNamespaceSchemaLocation', - 'https://schema.phpunit.de/9.3/phpunit.xsd' + 'https://schema.phpunit.de/9.3/phpunit.xsd', ); } } diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php index d173e7af..57bc9f2e 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrator.php @@ -34,7 +34,7 @@ final class Migrator sprintf( '"%s" is not a valid PHPUnit XML configuration file that can be migrated', $filename, - ) + ), ); } @@ -42,7 +42,7 @@ final class Migrator $filename, false, true, - true + true, ); foreach ((new MigrationBuilder)->build($origin->version()) as $migration) { diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php index 5fb0c72b..f5969945 100644 --- a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php +++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/PHP/PhpHandler.php @@ -52,7 +52,7 @@ final class PhpHandler 'include_path', implode(PATH_SEPARATOR, $includePathsAsStrings) . PATH_SEPARATOR . - ini_get('include_path') + ini_get('include_path'), ); } } diff --git a/vendor/phpunit/phpunit/src/Util/Annotation/DocBlock.php b/vendor/phpunit/phpunit/src/Util/Annotation/DocBlock.php index 5066c4bb..764bbbfb 100644 --- a/vendor/phpunit/phpunit/src/Util/Annotation/DocBlock.php +++ b/vendor/phpunit/phpunit/src/Util/Annotation/DocBlock.php @@ -128,7 +128,7 @@ final class DocBlock $class->getEndLine(), $class->getFileName(), $className, - $className + $className, ); } @@ -145,7 +145,7 @@ final class DocBlock $method->getEndLine(), $method->getFileName(), $method->getName(), - $classNameInHierarchy + $classNameInHierarchy, ); } @@ -263,7 +263,7 @@ final class DocBlock array_filter([ 'setting' => $recordedSettings, 'extension_versions' => $extensionVersions, - ]) + ]), ); } @@ -290,8 +290,8 @@ final class DocBlock throw new InvalidDataSetException( sprintf( 'Data set %s is invalid.', - is_int($key) ? '#' . $key : '"' . $key . '"' - ) + is_int($key) ? '#' . $key : '"' . $key . '"', + ), ); } } @@ -399,14 +399,14 @@ final class DocBlock $dataProviderClass = new ReflectionClass($dataProviderClassName); $dataProviderMethod = $dataProviderClass->getMethod( - $dataProviderMethodName + $dataProviderMethodName, ); // @codeCoverageIgnoreStart } catch (ReflectionException $e) { throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); // @codeCoverageIgnoreEnd } @@ -435,8 +435,8 @@ final class DocBlock sprintf( 'The key "%s" has already been defined in the data provider "%s".', $key, - $match - ) + $match, + ), ); } else { $data[$key] = $value; @@ -478,7 +478,7 @@ final class DocBlock if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception( - 'The data set for the @testWith annotation cannot be parsed: ' . json_last_error_msg() + 'The data set for the @testWith annotation cannot be parsed: ' . json_last_error_msg(), ); } @@ -494,9 +494,9 @@ final class DocBlock private function cleanUpMultiLineAnnotation(string $docComment): string { - //removing initial ' * ' for docComment + // removing initial ' * ' for docComment $docComment = str_replace("\r\n", "\n", $docComment); - $docComment = preg_replace('/' . '\n' . '\s*' . '\*' . '\s?' . '/', "\n", $docComment); + $docComment = preg_replace('/\n\s*\*\s?/', "\n", $docComment); $docComment = (string) substr($docComment, 0, -1); return rtrim($docComment, "\n"); @@ -533,14 +533,14 @@ final class DocBlock { return self::parseDocBlock((string) $trait->getDocComment()); }, - array_values($reflector->getTraits()) - ) + array_values($reflector->getTraits()), + ), ); } return array_merge( $annotations, - self::parseDocBlock((string) $reflector->getDocComment()) + self::parseDocBlock((string) $reflector->getDocComment()), ); } } diff --git a/vendor/phpunit/phpunit/src/Util/Annotation/Registry.php b/vendor/phpunit/phpunit/src/Util/Annotation/Registry.php index 8ee6c839..a34cb9ad 100644 --- a/vendor/phpunit/phpunit/src/Util/Annotation/Registry.php +++ b/vendor/phpunit/phpunit/src/Util/Annotation/Registry.php @@ -59,7 +59,7 @@ final class Registry throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -85,7 +85,7 @@ final class Registry throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Util/Color.php b/vendor/phpunit/phpunit/src/Util/Color.php index b96eb474..ee0f412d 100644 --- a/vendor/phpunit/phpunit/src/Util/Color.php +++ b/vendor/phpunit/phpunit/src/Util/Color.php @@ -120,7 +120,7 @@ final class Color { return self::dim($matches[0]); }, - $path[$last] + $path[$last], ); } diff --git a/vendor/phpunit/phpunit/src/Util/ErrorHandler.php b/vendor/phpunit/phpunit/src/Util/ErrorHandler.php index f8566347..3bdf9bf1 100644 --- a/vendor/phpunit/phpunit/src/Util/ErrorHandler.php +++ b/vendor/phpunit/phpunit/src/Util/ErrorHandler.php @@ -64,7 +64,7 @@ final class ErrorHandler } return false; - } + }, ); $result = $callable(); diff --git a/vendor/phpunit/phpunit/src/Util/ExcludeList.php b/vendor/phpunit/phpunit/src/Util/ExcludeList.php index 778eb309..a00bfff0 100644 --- a/vendor/phpunit/phpunit/src/Util/ExcludeList.php +++ b/vendor/phpunit/phpunit/src/Util/ExcludeList.php @@ -161,8 +161,8 @@ final class ExcludeList throw new Exception( sprintf( '"%s" is not a directory', - $directory - ) + $directory, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/FileLoader.php b/vendor/phpunit/phpunit/src/Util/FileLoader.php index 8abdc91c..e0a66506 100644 --- a/vendor/phpunit/phpunit/src/Util/FileLoader.php +++ b/vendor/phpunit/phpunit/src/Util/FileLoader.php @@ -42,7 +42,7 @@ final class FileLoader $includePathFilename === $localFile || !self::isReadable($includePathFilename)) { throw new Exception( - sprintf('Cannot open file "%s".' . "\n", $filename) + sprintf('Cannot open file "%s".' . "\n", $filename), ); } diff --git a/vendor/phpunit/phpunit/src/Util/Filesystem.php b/vendor/phpunit/phpunit/src/Util/Filesystem.php index 35b2690b..886829d2 100644 --- a/vendor/phpunit/phpunit/src/Util/Filesystem.php +++ b/vendor/phpunit/phpunit/src/Util/Filesystem.php @@ -30,7 +30,7 @@ final class Filesystem return str_replace( ['_', '\\'], DIRECTORY_SEPARATOR, - $className + $className, ) . '.php'; } diff --git a/vendor/phpunit/phpunit/src/Util/Filter.php b/vendor/phpunit/phpunit/src/Util/Filter.php index 42563937..94b7e77d 100644 --- a/vendor/phpunit/phpunit/src/Util/Filter.php +++ b/vendor/phpunit/phpunit/src/Util/Filter.php @@ -53,7 +53,7 @@ final class Filter if (!self::frameExists($eTrace, $eFile, $eLine)) { array_unshift( $eTrace, - ['file' => $eFile, 'line' => $eLine] + ['file' => $eFile, 'line' => $eLine], ); } @@ -65,7 +65,7 @@ final class Filter $filteredStacktrace .= sprintf( "%s:%s\n", $frame['file'], - $frame['line'] ?? '?' + $frame['line'] ?? '?', ); } } diff --git a/vendor/phpunit/phpunit/src/Util/GlobalState.php b/vendor/phpunit/phpunit/src/Util/GlobalState.php index 5cf16bcd..18b5a646 100644 --- a/vendor/phpunit/phpunit/src/Util/GlobalState.php +++ b/vendor/phpunit/phpunit/src/Util/GlobalState.php @@ -188,7 +188,7 @@ final class GlobalState $result .= sprintf( '@ini_set(%s, %s);' . "\n", self::exportVariable($key), - self::exportVariable((string) $value) + self::exportVariable((string) $value), ); } @@ -206,7 +206,7 @@ final class GlobalState 'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n", $name, $name, - self::exportVariable($value) + self::exportVariable($value), ); } } @@ -229,7 +229,7 @@ final class GlobalState '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n", $superGlobalArray, $key, - self::exportVariable($GLOBALS[$superGlobalArray][$key]) + self::exportVariable($GLOBALS[$superGlobalArray][$key]), ); } } @@ -243,7 +243,7 @@ final class GlobalState $result .= sprintf( '$GLOBALS[\'%s\'] = %s;' . "\n", $key, - self::exportVariable($GLOBALS[$key]) + self::exportVariable($GLOBALS[$key]), ); } } diff --git a/vendor/phpunit/phpunit/src/Util/Json.php b/vendor/phpunit/phpunit/src/Util/Json.php index 752c1fd6..e200071b 100644 --- a/vendor/phpunit/phpunit/src/Util/Json.php +++ b/vendor/phpunit/phpunit/src/Util/Json.php @@ -37,7 +37,7 @@ final class Json if (json_last_error()) { throw new Exception( - 'Cannot prettify invalid json' + 'Cannot prettify invalid json', ); } diff --git a/vendor/phpunit/phpunit/src/Util/Log/JUnit.php b/vendor/phpunit/phpunit/src/Util/Log/JUnit.php index 3ceb5e84..c7ba4fc5 100644 --- a/vendor/phpunit/phpunit/src/Util/Log/JUnit.php +++ b/vendor/phpunit/phpunit/src/Util/Log/JUnit.php @@ -226,37 +226,37 @@ final class JUnit extends Printer implements TestListener { $this->testSuites[$this->testSuiteLevel]->setAttribute( 'tests', - (string) $this->testSuiteTests[$this->testSuiteLevel] + (string) $this->testSuiteTests[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'assertions', - (string) $this->testSuiteAssertions[$this->testSuiteLevel] + (string) $this->testSuiteAssertions[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'errors', - (string) $this->testSuiteErrors[$this->testSuiteLevel] + (string) $this->testSuiteErrors[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'warnings', - (string) $this->testSuiteWarnings[$this->testSuiteLevel] + (string) $this->testSuiteWarnings[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'failures', - (string) $this->testSuiteFailures[$this->testSuiteLevel] + (string) $this->testSuiteFailures[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'skipped', - (string) $this->testSuiteSkipped[$this->testSuiteLevel] + (string) $this->testSuiteSkipped[$this->testSuiteLevel], ); $this->testSuites[$this->testSuiteLevel]->setAttribute( 'time', - sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel]) + sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel]), ); if ($this->testSuiteLevel > 1) { @@ -293,7 +293,7 @@ final class JUnit extends Printer implements TestListener throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -308,7 +308,7 @@ final class JUnit extends Printer implements TestListener throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -337,16 +337,16 @@ final class JUnit extends Printer implements TestListener $this->currentTestCase->setAttribute( 'assertions', - (string) $numAssertions + (string) $numAssertions, ); $this->currentTestCase->setAttribute( 'time', - sprintf('%F', $time) + sprintf('%F', $time), ); $this->testSuites[$this->testSuiteLevel]->appendChild( - $this->currentTestCase + $this->currentTestCase, ); $this->testSuiteTests[$this->testSuiteLevel]++; @@ -361,7 +361,7 @@ final class JUnit extends Printer implements TestListener if (!empty($testOutput)) { $systemOut = $this->document->createElement( 'system-out', - Xml::prepareString($testOutput) + Xml::prepareString($testOutput), ); $this->currentTestCase->appendChild($systemOut); @@ -392,12 +392,12 @@ final class JUnit extends Printer implements TestListener $buffer .= trim( TestFailure::exceptionToString($t) . "\n" . - Filter::getFilteredStacktrace($t) + Filter::getFilteredStacktrace($t), ); $fault = $this->document->createElement( $type, - Xml::prepareString($buffer) + Xml::prepareString($buffer), ); if ($t instanceof ExceptionWrapper) { diff --git a/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php b/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php index 0efe3438..30375bd3 100644 --- a/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php +++ b/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php @@ -77,7 +77,7 @@ final class TeamCity extends DefaultResultPrinter 'message' => self::getMessage($t), 'details' => self::getDetails($t), 'duration' => self::toMilliseconds($time), - ] + ], ); } @@ -169,7 +169,7 @@ final class TeamCity extends DefaultResultPrinter 'message' => self::getMessage($t), 'details' => self::getDetails($t), 'duration' => self::toMilliseconds($time), - ] + ], ); } @@ -189,7 +189,7 @@ final class TeamCity extends DefaultResultPrinter $this->printEvent( 'testCount', - ['count' => count($suite)] + ['count' => count($suite)], ); } @@ -271,7 +271,7 @@ final class TeamCity extends DefaultResultPrinter [ 'name' => $test->getName(), 'duration' => self::toMilliseconds($time), - ] + ], ); } @@ -351,7 +351,7 @@ final class TeamCity extends DefaultResultPrinter return str_replace( ['|', "'", "\n", "\r", ']', '['], ['||', "|'", '|n', '|r', '|]', '|['], - $text + $text, ); } @@ -367,7 +367,7 @@ final class TeamCity extends DefaultResultPrinter throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php index 8706ae1a..5b34055a 100644 --- a/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php +++ b/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php @@ -184,7 +184,7 @@ abstract class AbstractPhpProcess $test, $result, $_result['stdout'], - $_result['stderr'] + $_result['stderr'], ); } @@ -199,15 +199,15 @@ abstract class AbstractPhpProcess $settings = array_merge( $settings, $this->runtime->getCurrentSettings( - array_keys(ini_get_all('pcov')) - ) + array_keys(ini_get_all('pcov')), + ), ); } elseif ($this->runtime->hasXdebug()) { $settings = array_merge( $settings, $this->runtime->getCurrentSettings( - array_keys(ini_get_all('xdebug')) - ) + array_keys(ini_get_all('xdebug')), + ), ); } @@ -268,7 +268,7 @@ abstract class AbstractPhpProcess $result->addError( $test, new Exception(trim($stderr)), - $time + $time, ); } else { set_error_handler( @@ -278,7 +278,7 @@ abstract class AbstractPhpProcess static function ($errno, $errstr, $errfile, $errline): void { throw new ErrorException($errstr, $errno, $errno, $errfile, $errline); - } + }, ); try { @@ -293,7 +293,7 @@ abstract class AbstractPhpProcess $result->addFailure( $test, new AssertionFailedError('Test was run in child process and ended unexpectedly'), - $time + $time, ); } } catch (ErrorException $e) { @@ -303,7 +303,7 @@ abstract class AbstractPhpProcess $result->addError( $test, new Exception(trim($stdout), 0, $e), - $time + $time, ); } @@ -322,7 +322,7 @@ abstract class AbstractPhpProcess if ($result->getCollectCodeCoverageInformation()) { $result->getCodeCoverage()->merge( - $childResult->getCodeCoverage() + $childResult->getCodeCoverage(), ); } @@ -338,37 +338,37 @@ abstract class AbstractPhpProcess $result->addError( $test, $this->getException($notImplemented[0]), - $time + $time, ); } elseif (!empty($risky)) { $result->addError( $test, $this->getException($risky[0]), - $time + $time, ); } elseif (!empty($skipped)) { $result->addError( $test, $this->getException($skipped[0]), - $time + $time, ); } elseif (!empty($errors)) { $result->addError( $test, $this->getException($errors[0]), - $time + $time, ); } elseif (!empty($warnings)) { $result->addWarning( $test, $this->getException($warnings[0]), - $time + $time, ); } elseif (!empty($failures)) { $result->addFailure( $test, $this->getException($failures[0]), - $time + $time, ); } } @@ -402,12 +402,12 @@ abstract class AbstractPhpProcess sprintf( '%s: %s', $exceptionArray['_PHP_Incomplete_Class_Name'], - $exceptionArray['message'] + $exceptionArray['message'], ), $exceptionArray['code'], $exceptionArray['file'], $exceptionArray['line'], - $exceptionArray['trace'] + $exceptionArray['trace'], ); } diff --git a/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php index c4dc1114..64974f1d 100644 --- a/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php +++ b/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php @@ -49,7 +49,7 @@ class DefaultPhpProcess extends AbstractPhpProcess if (!($this->tempFile = tempnam(sys_get_temp_dir(), 'PHPUnit')) || file_put_contents($this->tempFile, $job) === false) { throw new Exception( - 'Unable to write temporary file' + 'Unable to write temporary file', ); } @@ -101,12 +101,12 @@ class DefaultPhpProcess extends AbstractPhpProcess $pipeSpec, $pipes, null, - $env + $env, ); if (!is_resource($process)) { throw new Exception( - 'Unable to spawn worker process' + 'Unable to spawn worker process', ); } @@ -138,8 +138,8 @@ class DefaultPhpProcess extends AbstractPhpProcess throw new Exception( sprintf( 'Job execution aborted after %d seconds', - $this->timeout - ) + $this->timeout, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php index 9ef92555..2480bc8c 100644 --- a/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php +++ b/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php @@ -36,7 +36,7 @@ final class WindowsPhpProcess extends DefaultPhpProcess { if (false === $stdout_handle = tmpfile()) { throw new Exception( - 'A temporary file could not be created; verify that your TEMP environment variable is writable' + 'A temporary file could not be created; verify that your TEMP environment variable is writable', ); } diff --git a/vendor/phpunit/phpunit/src/Util/Printer.php b/vendor/phpunit/phpunit/src/Util/Printer.php index 77b5745a..311d4943 100644 --- a/vendor/phpunit/phpunit/src/Util/Printer.php +++ b/vendor/phpunit/phpunit/src/Util/Printer.php @@ -67,8 +67,8 @@ class Printer throw new Exception( sprintf( '"%s" does not match "socket://hostname:port" format', - $out - ) + $out, + ), ); } @@ -81,8 +81,8 @@ class Printer throw new Exception( sprintf( 'Directory "%s" was not created', - dirname($out) - ) + dirname($out), + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/RegularExpression.php b/vendor/phpunit/phpunit/src/Util/RegularExpression.php index db1dae92..1e97d6c2 100644 --- a/vendor/phpunit/phpunit/src/Util/RegularExpression.php +++ b/vendor/phpunit/phpunit/src/Util/RegularExpression.php @@ -25,7 +25,7 @@ final class RegularExpression static function () use ($pattern, $subject) { return preg_match($pattern, $subject); - } + }, ); } } diff --git a/vendor/phpunit/phpunit/src/Util/Test.php b/vendor/phpunit/phpunit/src/Util/Test.php index d04a7683..12c6bf16 100644 --- a/vendor/phpunit/phpunit/src/Util/Test.php +++ b/vendor/phpunit/phpunit/src/Util/Test.php @@ -119,7 +119,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); if (!self::shouldCoversAnnotationBeUsed($annotations)) { @@ -145,7 +145,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( get_class($test), - $test->getName(false) + $test->getName(false), ); // If there is no @covers annotation but a @coversNothing annotation on @@ -182,7 +182,7 @@ final class Test { return self::mergeArraysRecursively( Registry::getInstance()->forClassName($className)->requirements(), - Registry::getInstance()->forMethod($className, $methodName)->requirements() + Registry::getInstance()->forMethod($className, $methodName)->requirements(), ); } @@ -213,7 +213,7 @@ final class Test if (!$required['PHP_constraint']['constraint']->complies($version)) { $missing[] = sprintf( 'PHP version does not match the required constraint %s.', - $required['PHP_constraint']['constraint']->asString() + $required['PHP_constraint']['constraint']->asString(), ); $hint = 'PHP_constraint'; @@ -235,7 +235,7 @@ final class Test if (!$required['PHPUnit_constraint']['constraint']->complies($phpunitVersion)) { $missing[] = sprintf( 'PHPUnit version does not match the required constraint %s.', - $required['PHPUnit_constraint']['constraint']->asString() + $required['PHPUnit_constraint']['constraint']->asString(), ); $hint = $hint ?? 'PHPUnit_constraint'; @@ -367,12 +367,12 @@ final class Test 'backupGlobals' => self::getBooleanAnnotationSetting( $className, $methodName, - 'backupGlobals' + 'backupGlobals', ), 'backupStaticAttributes' => self::getBooleanAnnotationSetting( $className, $methodName, - 'backupStaticAttributes' + 'backupStaticAttributes', ), ]; } @@ -386,7 +386,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); $dependsAnnotations = $annotations['class']['depends'] ?? []; @@ -394,7 +394,7 @@ final class Test if (isset($annotations['method']['depends'])) { $dependsAnnotations = array_merge( $dependsAnnotations, - $annotations['method']['depends'] + $annotations['method']['depends'], ); } @@ -413,7 +413,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); $groups = []; @@ -492,7 +492,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); return isset($annotations['class']['runTestsInSeparateProcesses']) || isset($annotations['method']['runInSeparateProcess']); @@ -503,7 +503,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); return isset($annotations['class']['runClassInSeparateProcess']); @@ -515,7 +515,7 @@ final class Test return self::getBooleanAnnotationSetting( $className, $methodName, - 'preserveGlobalState' + 'preserveGlobalState', ); } @@ -537,7 +537,7 @@ final class Test if ($docBlock->isHookToBeExecutedBeforeClass()) { array_unshift( self::$hookMethods[$className]['beforeClass'], - $method->getName() + $method->getName(), ); } @@ -549,14 +549,14 @@ final class Test if ($docBlock->isToBeExecutedBeforeTest()) { array_unshift( self::$hookMethods[$className]['before'], - $method->getName() + $method->getName(), ); } if ($docBlock->isToBeExecutedAsPreCondition()) { array_unshift( self::$hookMethods[$className]['preCondition'], - $method->getName() + $method->getName(), ); } @@ -589,9 +589,9 @@ final class Test 'test', Registry::getInstance()->forMethod( $method->getDeclaringClass()->getName(), - $method->getName() + $method->getName(), ) - ->symbolAnnotations() + ->symbolAnnotations(), ); } @@ -604,7 +604,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); $classShortcut = null; @@ -615,8 +615,8 @@ final class Test sprintf( 'More than one @%sClass annotation in class or interface "%s".', $mode, - $className - ) + $className, + ), ); } @@ -645,8 +645,8 @@ final class Test throw new InvalidCoversTargetException( sprintf( 'Trying to @cover interface "%s".', - $element - ) + $element, + ), ); } @@ -657,10 +657,10 @@ final class Test sprintf( '"@%s %s" is invalid', $mode, - $element + $element, ), $e->getCode(), - $e + $e, ); } } @@ -685,7 +685,7 @@ final class Test { $annotations = self::parseTestMethodAnnotations( $className, - $methodName + $methodName, ); if (isset($annotations['method'][$settingName])) { @@ -720,7 +720,7 @@ final class Test return preg_replace( '/^(\d+\.\d+(?:.\d+)?).*$/', '$1', - $version + $version, ); } diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php index b66eb8b9..031c7ed6 100644 --- a/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php +++ b/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php @@ -205,7 +205,7 @@ class CliTestDoxPrinter extends TestDoxPrinter ' %s %s%s' . PHP_EOL, $this->colorizeTextBox($style['color'], $style['symbol']), $testName, - $this->verbose ? ' ' . $this->formatRuntime($result['time'], $style['color']) : '' + $this->verbose ? ' ' . $this->formatRuntime($result['time'], $style['color']) : '', ); $this->write($line); diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php index 776a83bd..d08bfad4 100644 --- a/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php +++ b/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php @@ -122,8 +122,8 @@ EOT; $this->write( sprintf( self::CLASS_HEADER, - $this->currentTestClassPrettified - ) + $this->currentTestClassPrettified, + ), ); } @@ -136,8 +136,8 @@ EOT; sprintf( "
  • %s
  • \n", $success ? 'success' : 'defect', - $name - ) + $name, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php b/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php index 74207149..ee0a41b1 100644 --- a/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php +++ b/vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php @@ -124,7 +124,7 @@ final class NamePrettifier { $annotations = Test::parseTestMethodAnnotations( get_class($test), - $test->getName(false) + $test->getName(false), ); $annotationWithPlaceholders = false; @@ -243,7 +243,7 @@ final class NamePrettifier throw new UtilException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd @@ -263,7 +263,7 @@ final class NamePrettifier throw new UtilException( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php index bd64785c..5a418998 100644 --- a/vendor/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php +++ b/vendor/phpunit/phpunit/src/Util/TestDox/TestDoxPrinter.php @@ -381,8 +381,8 @@ class TestDoxPrinter extends DefaultResultPrinter { return ' ' . $prefix . ($text ? ' ' . $text : ''); }, - preg_split('/\r\n|\r|\n/', $message) - ) + preg_split('/\r\n|\r|\n/', $message), + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php index 265fe41f..544c83e7 100644 --- a/vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php +++ b/vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php @@ -164,7 +164,7 @@ final class XmlResultPrinter extends Printer implements TestListener static function ($group) { return !($group === 'small' || $group === 'medium' || $group === 'large' || strpos($group, '__phpunit_') === 0); - } + }, ); $testNode = $this->document->createElement('test'); @@ -188,7 +188,7 @@ final class XmlResultPrinter extends Printer implements TestListener $annotations = TestUtil::parseTestMethodAnnotations( get_class($test), - $test->getName(false) + $test->getName(false), ); foreach (['class', 'method'] as $type) { @@ -240,7 +240,7 @@ final class XmlResultPrinter extends Printer implements TestListener throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php b/vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php index 67168a67..beb0e4b0 100644 --- a/vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php +++ b/vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php @@ -35,7 +35,7 @@ final class TextTestListRenderer $name = sprintf( '%s::%s', get_class($test), - str_replace(' with data set ', '', $test->getName()) + str_replace(' with data set ', '', $test->getName()), ); } elseif ($test instanceof PhptTestCase) { $name = $test->getName(); @@ -45,7 +45,7 @@ final class TextTestListRenderer $buffer .= sprintf( ' - %s' . PHP_EOL, - $name + $name, ); } diff --git a/vendor/phpunit/phpunit/src/Util/VersionComparisonOperator.php b/vendor/phpunit/phpunit/src/Util/VersionComparisonOperator.php index 77e67470..57ca7c32 100644 --- a/vendor/phpunit/phpunit/src/Util/VersionComparisonOperator.php +++ b/vendor/phpunit/phpunit/src/Util/VersionComparisonOperator.php @@ -50,8 +50,8 @@ final class VersionComparisonOperator throw new Exception( sprintf( '"%s" is not a valid version_compare() operator', - $operator - ) + $operator, + ), ); } } diff --git a/vendor/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php b/vendor/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php index 8b10d415..d6366eaa 100644 --- a/vendor/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php +++ b/vendor/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php @@ -32,10 +32,10 @@ final class XdebugFilterScriptGenerator { return sprintf( " '%s'", - $item + $item, ); }, - $this->getItems($filter) + $this->getItems($filter), ); $files = implode(",\n", $files); @@ -67,7 +67,7 @@ EOF; if (is_string($path)) { $files[] = sprintf( addslashes('%s' . DIRECTORY_SEPARATOR), - $path + $path, ); } } diff --git a/vendor/phpunit/phpunit/src/Util/Xml.php b/vendor/phpunit/phpunit/src/Util/Xml.php index 54d72156..efdd56ef 100644 --- a/vendor/phpunit/phpunit/src/Util/Xml.php +++ b/vendor/phpunit/phpunit/src/Util/Xml.php @@ -68,8 +68,8 @@ final class Xml '', htmlspecialchars( self::convertToUtf8($string), - ENT_QUOTES - ) + ENT_QUOTES, + ), ); } @@ -127,7 +127,7 @@ final class Xml throw new Exception( $e->getMessage(), $e->getCode(), - $e + $e, ); } // @codeCoverageIgnoreEnd diff --git a/vendor/phpunit/phpunit/src/Util/Xml/Loader.php b/vendor/phpunit/phpunit/src/Util/Xml/Loader.php index 8d43d327..2ba5ace3 100644 --- a/vendor/phpunit/phpunit/src/Util/Xml/Loader.php +++ b/vendor/phpunit/phpunit/src/Util/Xml/Loader.php @@ -38,8 +38,8 @@ final class Loader throw new Exception( sprintf( 'Could not read "%s".', - $filename - ) + $filename, + ), ); } @@ -100,8 +100,8 @@ final class Loader sprintf( 'Could not load "%s".%s', $filename, - $message !== '' ? "\n" . $message : '' - ) + $message !== '' ? "\n" . $message : '', + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/Xml/SchemaDetector.php b/vendor/phpunit/phpunit/src/Util/Xml/SchemaDetector.php index 5864695b..46f2b947 100644 --- a/vendor/phpunit/phpunit/src/Util/Xml/SchemaDetector.php +++ b/vendor/phpunit/phpunit/src/Util/Xml/SchemaDetector.php @@ -23,7 +23,7 @@ final class SchemaDetector $filename, false, true, - true + true, ); foreach (['9.2', '8.5'] as $candidate) { diff --git a/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php b/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php index 1e7b73c5..af17dfe9 100644 --- a/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php +++ b/vendor/phpunit/phpunit/src/Util/Xml/SchemaFinder.php @@ -34,8 +34,8 @@ final class SchemaFinder throw new Exception( sprintf( 'Schema for PHPUnit %s is not available', - $version - ) + $version, + ), ); } diff --git a/vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php b/vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php index b16ef0b7..7a63b10d 100644 --- a/vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php +++ b/vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php @@ -60,8 +60,8 @@ final class XmlTestListRenderer str_replace( ' with data set ', '', - $test->getDataSetAsString(false) - ) + $test->getDataSetAsString(false), + ), ); } diff --git a/vendor/sebastian/global-state/ChangeLog.md b/vendor/sebastian/global-state/ChangeLog.md index a27a5cf1..47726664 100644 --- a/vendor/sebastian/global-state/ChangeLog.md +++ b/vendor/sebastian/global-state/ChangeLog.md @@ -2,6 +2,12 @@ All notable changes in `sebastian/global-state` are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. +## [5.0.6] - 2023-08-02 + +### Changed + +* Changed usage of `ReflectionProperty::setValue()` to be compatible with PHP 8.3 + ## [5.0.5] - 2022-02-14 ### Fixed @@ -66,6 +72,7 @@ All notable changes in `sebastian/global-state` are documented in this file usin * This component is no longer supported on PHP 7.0 and PHP 7.1 +[5.0.6]: https://github.com/sebastianbergmann/global-state/compare/5.0.5...5.0.6 [5.0.5]: https://github.com/sebastianbergmann/global-state/compare/5.0.4...5.0.5 [5.0.4]: https://github.com/sebastianbergmann/global-state/compare/5.0.3...5.0.4 [5.0.3]: https://github.com/sebastianbergmann/global-state/compare/5.0.2...5.0.3 diff --git a/vendor/sebastian/global-state/src/Restorer.php b/vendor/sebastian/global-state/src/Restorer.php index 1633fcc1..ab145ce2 100644 --- a/vendor/sebastian/global-state/src/Restorer.php +++ b/vendor/sebastian/global-state/src/Restorer.php @@ -85,7 +85,7 @@ class Restorer foreach ($staticAttributes as $name => $value) { $reflector = new ReflectionProperty($className, $name); $reflector->setAccessible(true); - $reflector->setValue($value); + $reflector->setValue(null, $value); } } @@ -109,7 +109,7 @@ class Restorer } $attribute->setAccessible(true); - $attribute->setValue($defaults[$name]); + $attribute->setValue(null, $defaults[$name]); } } } diff --git a/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/symfony/console/Formatter/OutputFormatter.php index 9cb63104..3e4897c3 100644 --- a/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/symfony/console/Formatter/OutputFormatter.php @@ -13,6 +13,8 @@ namespace Symfony\Component\Console\Formatter; use Symfony\Component\Console\Exception\InvalidArgumentException; +use function Symfony\Component\String\b; + /** * Formatter class for console output. * @@ -241,7 +243,7 @@ class OutputFormatter implements WrappableOutputFormatterInterface } preg_match('~(\\n)$~', $text, $matches); - $text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text); + $text = $prefix.$this->addLineBreaks($text, $width); $text = rtrim($text, "\n").($matches[1] ?? ''); if (!$currentLineLength && '' !== $current && !str_ends_with($current, "\n")) { @@ -265,4 +267,11 @@ class OutputFormatter implements WrappableOutputFormatterInterface return implode("\n", $lines); } + + private function addLineBreaks(string $text, int $width): string + { + $encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8'; + + return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding); + } } diff --git a/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/symfony/console/Output/ConsoleSectionOutput.php index 3f3f1434..21c4a44a 100644 --- a/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -48,9 +48,9 @@ class ConsoleSectionOutput extends StreamOutput public function setMaxHeight(int $maxHeight): void { // when changing max height, clear output of current section and redraw again with the new height - $existingContent = $this->popStreamContentUntilCurrentSection($this->maxHeight ? min($this->maxHeight, $this->lines) : $this->lines); - + $previousMaxHeight = $this->maxHeight; $this->maxHeight = $maxHeight; + $existingContent = $this->popStreamContentUntilCurrentSection($previousMaxHeight ? min($previousMaxHeight, $this->lines) : $this->lines); parent::doWrite($this->getVisibleContent(), false); parent::doWrite($existingContent, false); @@ -119,8 +119,7 @@ class ConsoleSectionOutput extends StreamOutput // re-add the line break (that has been removed in the above `explode()` for // - every line that is not the last line // - if $newline is required, also add it to the last line - // - if it's not new line, but input ending with `\PHP_EOL` - if ($i < $count || $newline || str_ends_with($input, \PHP_EOL)) { + if ($i < $count || $newline) { $lineContent .= \PHP_EOL; } @@ -168,6 +167,12 @@ class ConsoleSectionOutput extends StreamOutput */ protected function doWrite(string $message, bool $newline) { + // Simulate newline behavior for consistent output formatting, avoiding extra logic + if (!$newline && str_ends_with($message, \PHP_EOL)) { + $message = substr($message, 0, -\strlen(\PHP_EOL)); + $newline = true; + } + if (!$this->isDecorated()) { parent::doWrite($message, $newline); @@ -213,7 +218,7 @@ class ConsoleSectionOutput extends StreamOutput break; } - $numberOfLinesToClear += $section->lines; + $numberOfLinesToClear += $section->maxHeight ? min($section->lines, $section->maxHeight) : $section->lines; if ('' !== $sectionContent = $section->getVisibleContent()) { if (!str_ends_with($sectionContent, \PHP_EOL)) { $sectionContent .= \PHP_EOL; diff --git a/vendor/symfony/polyfill-ctype/LICENSE b/vendor/symfony/polyfill-ctype/LICENSE index 3f853aaf..7536caea 100644 --- a/vendor/symfony/polyfill-ctype/LICENSE +++ b/vendor/symfony/polyfill-ctype/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-ctype/composer.json b/vendor/symfony/polyfill-ctype/composer.json index 1b3efff5..e5c978f1 100644 --- a/vendor/symfony/polyfill-ctype/composer.json +++ b/vendor/symfony/polyfill-ctype/composer.json @@ -31,7 +31,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-intl-grapheme/LICENSE b/vendor/symfony/polyfill-intl-grapheme/LICENSE index 4cd8bdd3..6e3afce6 100644 --- a/vendor/symfony/polyfill-intl-grapheme/LICENSE +++ b/vendor/symfony/polyfill-intl-grapheme/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-intl-grapheme/composer.json b/vendor/symfony/polyfill-intl-grapheme/composer.json index fde5537f..c00d4e9e 100644 --- a/vendor/symfony/polyfill-intl-grapheme/composer.json +++ b/vendor/symfony/polyfill-intl-grapheme/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-intl-normalizer/LICENSE b/vendor/symfony/polyfill-intl-normalizer/LICENSE index 4cd8bdd3..6e3afce6 100644 --- a/vendor/symfony/polyfill-intl-normalizer/LICENSE +++ b/vendor/symfony/polyfill-intl-normalizer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-intl-normalizer/composer.json b/vendor/symfony/polyfill-intl-normalizer/composer.json index 65f72d64..2c4de2c8 100644 --- a/vendor/symfony/polyfill-intl-normalizer/composer.json +++ b/vendor/symfony/polyfill-intl-normalizer/composer.json @@ -29,7 +29,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-mbstring/LICENSE b/vendor/symfony/polyfill-mbstring/LICENSE index 4cd8bdd3..6e3afce6 100644 --- a/vendor/symfony/polyfill-mbstring/LICENSE +++ b/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/symfony/polyfill-mbstring/Mbstring.php index bce5c4a8..2e0b9694 100644 --- a/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -69,7 +69,7 @@ final class Mbstring { public const MB_CASE_FOLD = \PHP_INT_MAX; - private const CASE_FOLD = [ + private const SIMPLE_CASE_FOLD = [ ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"], ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'], ]; @@ -301,7 +301,11 @@ final class Mbstring $map = $upper; } else { if (self::MB_CASE_FOLD === $mode) { - $s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s); + static $caseFolding = null; + if (null === $caseFolding) { + $caseFolding = self::getData('caseFolding'); + } + $s = strtr($s, $caseFolding); } static $lower = null; @@ -406,6 +410,12 @@ final class Mbstring public static function mb_check_encoding($var = null, $encoding = null) { + if (PHP_VERSION_ID < 70200 && \is_array($var)) { + trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + + return null; + } + if (null === $encoding) { if (null === $var) { return false; @@ -413,7 +423,21 @@ final class Mbstring $encoding = self::$internalEncoding; } - return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var); + if (!\is_array($var)) { + return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var); + } + + foreach ($var as $key => $value) { + if (!self::mb_check_encoding($key, $encoding)) { + return false; + } + if (!self::mb_check_encoding($value, $encoding)) { + return false; + } + } + + return true; + } public static function mb_detect_encoding($str, $encodingList = null, $strict = false) @@ -638,8 +662,10 @@ final class Mbstring public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + [$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [ + self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding), + self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding), + ]); return self::mb_strpos($haystack, $needle, $offset, $encoding); } @@ -674,8 +700,11 @@ final class Mbstring public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + $haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding); + $needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding); + + $haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack); + $needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle); return self::mb_strrpos($haystack, $needle, $offset, $encoding); } @@ -798,6 +827,50 @@ final class Mbstring return $code; } + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, string $encoding = null): string + { + if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { + throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); + } + + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } + + try { + $validEncoding = @self::mb_check_encoding('', $encoding); + } catch (\ValueError $e) { + throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + + // BC for PHP 7.3 and lower + if (!$validEncoding) { + throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + + if (self::mb_strlen($pad_string, $encoding) <= 0) { + throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); + } + + $paddingRequired = $length - self::mb_strlen($string, $encoding); + + if ($paddingRequired < 1) { + return $string; + } + + switch ($pad_type) { + case \STR_PAD_LEFT: + return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string; + case \STR_PAD_RIGHT: + return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding); + default: + $leftPaddingLength = floor($paddingRequired / 2); + $rightPaddingLength = $paddingRequired - $leftPaddingLength; + + return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); + } + } + private static function getSubpart($pos, $part, $haystack, $encoding) { if (false === $pos) { diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php new file mode 100644 index 00000000..512bba0b --- /dev/null +++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -0,0 +1,119 @@ + 'i̇', + 'µ' => 'μ', + 'ſ' => 's', + 'ͅ' => 'ι', + 'ς' => 'σ', + 'ϐ' => 'β', + 'ϑ' => 'θ', + 'ϕ' => 'φ', + 'ϖ' => 'π', + 'ϰ' => 'κ', + 'ϱ' => 'ρ', + 'ϵ' => 'ε', + 'ẛ' => 'ṡ', + 'ι' => 'ι', + 'ß' => 'ss', + 'ʼn' => 'ʼn', + 'ǰ' => 'ǰ', + 'ΐ' => 'ΐ', + 'ΰ' => 'ΰ', + 'և' => 'եւ', + 'ẖ' => 'ẖ', + 'ẗ' => 'ẗ', + 'ẘ' => 'ẘ', + 'ẙ' => 'ẙ', + 'ẚ' => 'aʾ', + 'ẞ' => 'ss', + 'ὐ' => 'ὐ', + 'ὒ' => 'ὒ', + 'ὔ' => 'ὔ', + 'ὖ' => 'ὖ', + 'ᾀ' => 'ἀι', + 'ᾁ' => 'ἁι', + 'ᾂ' => 'ἂι', + 'ᾃ' => 'ἃι', + 'ᾄ' => 'ἄι', + 'ᾅ' => 'ἅι', + 'ᾆ' => 'ἆι', + 'ᾇ' => 'ἇι', + 'ᾈ' => 'ἀι', + 'ᾉ' => 'ἁι', + 'ᾊ' => 'ἂι', + 'ᾋ' => 'ἃι', + 'ᾌ' => 'ἄι', + 'ᾍ' => 'ἅι', + 'ᾎ' => 'ἆι', + 'ᾏ' => 'ἇι', + 'ᾐ' => 'ἠι', + 'ᾑ' => 'ἡι', + 'ᾒ' => 'ἢι', + 'ᾓ' => 'ἣι', + 'ᾔ' => 'ἤι', + 'ᾕ' => 'ἥι', + 'ᾖ' => 'ἦι', + 'ᾗ' => 'ἧι', + 'ᾘ' => 'ἠι', + 'ᾙ' => 'ἡι', + 'ᾚ' => 'ἢι', + 'ᾛ' => 'ἣι', + 'ᾜ' => 'ἤι', + 'ᾝ' => 'ἥι', + 'ᾞ' => 'ἦι', + 'ᾟ' => 'ἧι', + 'ᾠ' => 'ὠι', + 'ᾡ' => 'ὡι', + 'ᾢ' => 'ὢι', + 'ᾣ' => 'ὣι', + 'ᾤ' => 'ὤι', + 'ᾥ' => 'ὥι', + 'ᾦ' => 'ὦι', + 'ᾧ' => 'ὧι', + 'ᾨ' => 'ὠι', + 'ᾩ' => 'ὡι', + 'ᾪ' => 'ὢι', + 'ᾫ' => 'ὣι', + 'ᾬ' => 'ὤι', + 'ᾭ' => 'ὥι', + 'ᾮ' => 'ὦι', + 'ᾯ' => 'ὧι', + 'ᾲ' => 'ὰι', + 'ᾳ' => 'αι', + 'ᾴ' => 'άι', + 'ᾶ' => 'ᾶ', + 'ᾷ' => 'ᾶι', + 'ᾼ' => 'αι', + 'ῂ' => 'ὴι', + 'ῃ' => 'ηι', + 'ῄ' => 'ήι', + 'ῆ' => 'ῆ', + 'ῇ' => 'ῆι', + 'ῌ' => 'ηι', + 'ῒ' => 'ῒ', + 'ῖ' => 'ῖ', + 'ῗ' => 'ῗ', + 'ῢ' => 'ῢ', + 'ῤ' => 'ῤ', + 'ῦ' => 'ῦ', + 'ῧ' => 'ῧ', + 'ῲ' => 'ὼι', + 'ῳ' => 'ωι', + 'ῴ' => 'ώι', + 'ῶ' => 'ῶ', + 'ῷ' => 'ῶι', + 'ῼ' => 'ωι', + 'ff' => 'ff', + 'fi' => 'fi', + 'fl' => 'fl', + 'ffi' => 'ffi', + 'ffl' => 'ffl', + 'ſt' => 'st', + 'st' => 'st', + 'ﬓ' => 'մն', + 'ﬔ' => 'մե', + 'ﬕ' => 'մի', + 'ﬖ' => 'վն', + 'ﬗ' => 'մխ', +]; diff --git a/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/symfony/polyfill-mbstring/bootstrap.php index 1fedd1f7..ecf1a035 100644 --- a/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -132,6 +132,10 @@ if (!function_exists('mb_str_split')) { function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-mbstring/bootstrap80.php b/vendor/symfony/polyfill-mbstring/bootstrap80.php index 82f5ac4d..2f9fb5b4 100644 --- a/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -128,6 +128,10 @@ if (!function_exists('mb_str_split')) { function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-mbstring/composer.json b/vendor/symfony/polyfill-mbstring/composer.json index 44895536..943e5029 100644 --- a/vendor/symfony/polyfill-mbstring/composer.json +++ b/vendor/symfony/polyfill-mbstring/composer.json @@ -31,7 +31,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-php80/LICENSE b/vendor/symfony/polyfill-php80/LICENSE index 5593b1d8..0ed3a246 100644 --- a/vendor/symfony/polyfill-php80/LICENSE +++ b/vendor/symfony/polyfill-php80/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020 Fabien Potencier +Copyright (c) 2020-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-php80/composer.json b/vendor/symfony/polyfill-php80/composer.json index bd9a3262..f1801f40 100644 --- a/vendor/symfony/polyfill-php80/composer.json +++ b/vendor/symfony/polyfill-php80/composer.json @@ -30,7 +30,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php index 2871e4e5..2cd6bb87 100644 --- a/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/vendor/symfony/string/Inflector/EnglishInflector.php @@ -94,6 +94,9 @@ final class EnglishInflector implements InflectorInterface // accesses (access), addresses (address), kisses (kiss) ['sess', 4, true, false, 'ss'], + // statuses (status) + ['sesutats', 8, true, true, 'status'], + // analyses (analysis), ellipses (ellipsis), fungi (fungus), // neuroses (neurosis), theses (thesis), emphases (emphasis), // oases (oasis), crises (crisis), houses (house), bases (base), @@ -138,6 +141,9 @@ final class EnglishInflector implements InflectorInterface // shoes (shoe) ['se', 2, true, true, ['', 'e']], + // status (status) + ['sutats', 6, true, true, 'status'], + // tags (tag) ['s', 1, true, true, ''], @@ -279,6 +285,9 @@ final class EnglishInflector implements InflectorInterface // circuses (circus) ['suc', 3, true, true, 'cuses'], + // status (status) + ['sutats', 6, true, true, ['status', 'statuses']], + // conspectuses (conspectus), prospectuses (prospectus) ['sutcep', 6, true, true, 'pectuses'],