20250204
This commit is contained in:
		
							
								
								
									
										2
									
								
								.idea/php-test-framework.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/php-test-framework.xml
									
									
									
										generated
									
									
									
								
							| @@ -5,7 +5,7 @@ | ||||
|       <tool tool_name="PHPUnit"> | ||||
|         <cache> | ||||
|           <versions> | ||||
|             <info id="локальныйD:\Internet\php\tools\phpunit\phpunit_2.phar" version="11.5.6" /> | ||||
|             <info id="локальный\vendor/autoload.php" version="12.0" /> | ||||
|           </versions> | ||||
|         </cache> | ||||
|       </tool> | ||||
|   | ||||
							
								
								
									
										2
									
								
								.idea/php.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/php.xml
									
									
									
										generated
									
									
									
								
							| @@ -46,7 +46,7 @@ | ||||
|   </component> | ||||
|   <component name="PhpUnit"> | ||||
|     <phpunit_settings> | ||||
|       <PhpUnitSettings load_method="PHPUNIT_PHAR" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="D:/Internet/php/tools/phpunit/phpunit_2.phar" /> | ||||
|       <PhpUnitSettings custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="$PROJECT_DIR$/../../Internet/php/tools/phpunit/phpunit_2.phar" /> | ||||
|     </phpunit_settings> | ||||
|   </component> | ||||
|   <component name="PsalmOptionsConfiguration"> | ||||
|   | ||||
							
								
								
									
										2
									
								
								.idea/phpunit.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/phpunit.xml
									
									
									
										generated
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|   <component name="PHPUnit"> | ||||
|     <option name="directories"> | ||||
|       <list> | ||||
|         <option value="E:\MyComponents\anb_php_components_pack\tests" /> | ||||
|         <option value="D:\my_projects\anb_php_components_pack\tests" /> | ||||
|       </list> | ||||
|     </option> | ||||
|   </component> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| { | ||||
|   "name": "goodboyalex/php_components_pack", | ||||
|   "description": "[RU] Набор компонентов для сайта на PHP / [EN] A set of components for PHP website", | ||||
|   "minimum-stability": "dev", | ||||
|   "minimum-stability": "stable", | ||||
|   "keywords": [ | ||||
|     "components" | ||||
|   ], | ||||
|   | ||||
							
								
								
									
										555
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										555
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -57,4 +57,30 @@ final class ObjectArray implements ArrayAccess, IteratorAggregate, Countable, IS | ||||
|     { | ||||
|         return $this->Container; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Очищает массив объектов, хранящийся в данном классе. | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function Clear (): void | ||||
|     { | ||||
|         // Очищаем массив | ||||
|         unset($this->Container); | ||||
|  | ||||
|         // Создаем новый массив | ||||
|         $this->Container = []; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Объединяет массив объектов, хранящийся в данном классе, с массивом объектов, переданным в качестве параметра. | ||||
|      * | ||||
|      * @param array $objects Массив объектов, который будет объединен с массивом объектов, хранящимся в данном классе. | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function Merge (array $objects): void | ||||
|     { | ||||
|         $this->Container = array_merge($this->Container, $objects); | ||||
|     } | ||||
| } | ||||
| @@ -122,46 +122,194 @@ class ObjectArrayTest extends TestCase | ||||
|  | ||||
|     public function testDelete () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $a_Array->Delete(fn (A $a): bool => $a->b == 3); | ||||
|  | ||||
|         $cnt = $a_Array->Count(); | ||||
|         $this->assertEquals(2, $cnt); | ||||
|     } | ||||
|  | ||||
|     public function testClear () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $a_Array->Clear(); | ||||
|  | ||||
|         $cnt = $a_Array->Count(); | ||||
|         $this->assertEquals(0, $cnt); | ||||
|     } | ||||
|  | ||||
|     public function testMerge () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $array2 = [ | ||||
|             new A("d", 4, true), | ||||
|             new A("e", 5, false), | ||||
|             new A("f", 6, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $a_Array->Merge($array2); | ||||
|  | ||||
|         $cnt = $a_Array->Count(); | ||||
|         $this->assertEquals(6, $cnt); | ||||
|  | ||||
|         $sr = $a_Array->Search('a', 'f'); | ||||
|  | ||||
|         $this->assertEquals(6, $sr->b); | ||||
|     } | ||||
|  | ||||
|     public function testMaxBy () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $sr = $a_Array->MaxBy(fn (A $a) => $a->b); | ||||
|  | ||||
|         $this->assertEquals("a", $sr->a); | ||||
|     } | ||||
|  | ||||
|     public function testGetColumn () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $sr = $a_Array->GetColumn('a', fn (A $a): bool => $a->b < 3); | ||||
|  | ||||
|         $this->assertIsArray($sr); | ||||
|         $this->assertSame(['c', 'b'], $sr); | ||||
|     } | ||||
|  | ||||
|     public function testToArray () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $sr = $a_Array->ToArray(); | ||||
|  | ||||
|         $this->assertIsArray($sr); | ||||
|         $this->assertSame($array, $sr); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public function testMinBy () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $sr = $a_Array->MinBy(fn (A $a) => $a->b); | ||||
|  | ||||
|         $this->assertEquals("b", $sr->a); | ||||
|     } | ||||
|  | ||||
|     public function testIsExist () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|     } | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|     public function testSortCallback () | ||||
|     { | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $srTrue = $a_Array->IsExist(fn (A $a) => $a->b == 1); | ||||
|         $srFalse = $a_Array->IsExist(fn (A $a) => $a->b == 5); | ||||
|  | ||||
|         $this->assertTrue($srTrue); | ||||
|         $this->assertFalse($srFalse); | ||||
|     } | ||||
|  | ||||
|     public function testUpdate () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $a_Array->Update([new A("d", 3, true)], fn (A $a) => $a->a == "a"); | ||||
|  | ||||
|         $sr = $a_Array->Search("a", "d"); | ||||
|  | ||||
|         $this->assertEquals("3", $sr->b); | ||||
|         $this->assertTrue($sr->c); | ||||
|     } | ||||
|  | ||||
|     public function testGetRow () | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|  | ||||
|         $array = [ | ||||
|             new A("a", 3, true), | ||||
|             new A("c", 2, false), | ||||
|             new A("b", 1, true), | ||||
|         ]; | ||||
|  | ||||
|         $a_Array = new ObjectArray($array); | ||||
|  | ||||
|         $sr = $a_Array->GetRow(fn (A $a): bool => $a->b == 3); | ||||
|  | ||||
|         $this->assertInstanceOf(A::class, $sr); | ||||
|         $this->assertEquals('a', $sr->a); | ||||
|         $this->assertTrue($sr->c); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										27
									
								
								vendor/composer/InstalledVersions.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/composer/InstalledVersions.php
									
									
									
									
										vendored
									
									
								
							| @@ -32,6 +32,11 @@ class InstalledVersions | ||||
|      */ | ||||
|     private static $installed; | ||||
|  | ||||
|     /** | ||||
|      * @var bool | ||||
|      */ | ||||
|     private static $installedIsLocalDir; | ||||
|  | ||||
|     /** | ||||
|      * @var bool|null | ||||
|      */ | ||||
| @@ -309,6 +314,12 @@ class InstalledVersions | ||||
|     { | ||||
|         self::$installed = $data; | ||||
|         self::$installedByVendor = array(); | ||||
|  | ||||
|         // when using reload, we disable the duplicate protection to ensure that self::$installed data is | ||||
|         // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, | ||||
|         // so we have to assume it does not, and that may result in duplicate data being returned when listing | ||||
|         // all installed packages for example | ||||
|         self::$installedIsLocalDir = false; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -322,19 +333,27 @@ class InstalledVersions | ||||
|         } | ||||
|  | ||||
|         $installed = array(); | ||||
|         $copiedLocalDir = false; | ||||
|  | ||||
|         if (self::$canGetVendors) { | ||||
|             $selfDir = strtr(__DIR__, '\\', '/'); | ||||
|             foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { | ||||
|                 $vendorDir = strtr($vendorDir, '\\', '/'); | ||||
|                 if (isset(self::$installedByVendor[$vendorDir])) { | ||||
|                     $installed[] = self::$installedByVendor[$vendorDir]; | ||||
|                 } elseif (is_file($vendorDir.'/composer/installed.php')) { | ||||
|                     /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ | ||||
|                     $required = require $vendorDir.'/composer/installed.php'; | ||||
|                     $installed[] = self::$installedByVendor[$vendorDir] = $required; | ||||
|                     if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { | ||||
|                         self::$installed = $installed[count($installed) - 1]; | ||||
|                     self::$installedByVendor[$vendorDir] = $required; | ||||
|                     $installed[] = $required; | ||||
|                     if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { | ||||
|                         self::$installed = $required; | ||||
|                         self::$installedIsLocalDir = true; | ||||
|                     } | ||||
|                 } | ||||
|                 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { | ||||
|                     $copiedLocalDir = true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -350,7 +369,7 @@ class InstalledVersions | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (self::$installed !== array()) { | ||||
|         if (self::$installed !== array() && !$copiedLocalDir) { | ||||
|             $installed[] = self::$installed; | ||||
|         } | ||||
|  | ||||
|   | ||||
							
								
								
									
										401
									
								
								vendor/composer/autoload_classmap.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										401
									
								
								vendor/composer/autoload_classmap.php
									
									
									
									
										vendored
									
									
								
							| @@ -7,32 +7,6 @@ $baseDir = dirname($vendorDir); | ||||
|  | ||||
| return array( | ||||
|     'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', | ||||
|     'DeepCopy\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', | ||||
|     'DeepCopy\\Exception\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', | ||||
|     'DeepCopy\\Exception\\PropertyException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', | ||||
|     'DeepCopy\\Filter\\ChainableFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php', | ||||
|     'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', | ||||
|     'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', | ||||
|     'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', | ||||
|     'DeepCopy\\Filter\\Filter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', | ||||
|     'DeepCopy\\Filter\\KeepFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', | ||||
|     'DeepCopy\\Filter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', | ||||
|     'DeepCopy\\Filter\\SetNullFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', | ||||
|     'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', | ||||
|     'DeepCopy\\Matcher\\Matcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', | ||||
|     'DeepCopy\\Matcher\\PropertyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', | ||||
|     'DeepCopy\\Matcher\\PropertyNameMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', | ||||
|     'DeepCopy\\Matcher\\PropertyTypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', | ||||
|     'DeepCopy\\Reflection\\ReflectionHelper' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', | ||||
|     'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\Date\\DatePeriodFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', | ||||
|     'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', | ||||
|     'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', | ||||
|     'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', | ||||
|     'PHPUnit\\Event\\Application\\Finished' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/Finished.php', | ||||
|     'PHPUnit\\Event\\Application\\FinishedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Application\\Started' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Application/Started.php', | ||||
| @@ -90,10 +64,11 @@ return array( | ||||
|     'PHPUnit\\Event\\Telemetry\\Info' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Info.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\MemoryMeter' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryMeter.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\MemoryUsage' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryUsage.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\Php81GarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\Php83GarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\Snapshot' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\StopWatch' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/StopWatch.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\System' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/System.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\SystemGarbageCollectorStatusProvider' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\SystemMemoryMeter' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemMemoryMeter.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\SystemStopWatch' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatch.php', | ||||
|     'PHPUnit\\Event\\Telemetry\\SystemStopWatchWithOffset' => $vendorDir . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php', | ||||
| @@ -200,8 +175,14 @@ return array( | ||||
|     'PHPUnit\\Event\\Test\\MarkedIncompleteSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncompleteSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForTraitCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectForTraitCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\NoComparisonFailureException' => $vendorDir . '/phpunit/phpunit/src/Event/Exception/NoComparisonFailureException.php', | ||||
|     'PHPUnit\\Event\\Test\\NoticeTriggered' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php', | ||||
|     'PHPUnit\\Event\\Test\\NoticeTriggeredSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggeredSubscriber.php', | ||||
| @@ -243,6 +224,8 @@ return array( | ||||
|     'PHPUnit\\Event\\Test\\PrintedUnexpectedOutputSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutputSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\Skipped' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php', | ||||
|     'PHPUnit\\Event\\Test\\SkippedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/Outcome/SkippedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\TestProxyCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\TestProxyCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\TestStubCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php', | ||||
|     'PHPUnit\\Event\\Test\\TestStubCreatedSubscriber' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreatedSubscriber.php', | ||||
|     'PHPUnit\\Event\\Test\\TestStubForIntersectionOfInterfacesCreated' => $vendorDir . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php', | ||||
| @@ -266,11 +249,8 @@ return array( | ||||
|     'PHPUnit\\Framework\\Attributes\\Before' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Before.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\BeforeClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/BeforeClass.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClass.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversFunction.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversMethod.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversNamespace' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversNothing' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversNothing.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\CoversTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/CoversTrait.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/DataProvider.php', | ||||
| @@ -296,7 +276,6 @@ return array( | ||||
|     'PHPUnit\\Framework\\Attributes\\PostCondition' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PostCondition.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\PreCondition' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PreCondition.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\PreserveGlobalState' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/PreserveGlobalState.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\RequiresEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\RequiresFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresFunction.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\RequiresMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresMethod.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\RequiresOperatingSystem' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/RequiresOperatingSystem.php', | ||||
| @@ -316,11 +295,8 @@ return array( | ||||
|     'PHPUnit\\Framework\\Attributes\\TestWithJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/TestWithJson.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\Ticket' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/Ticket.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClass.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesFunction' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesFunction.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesMethod.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesNamespace' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\UsesTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/UsesTrait.php', | ||||
|     'PHPUnit\\Framework\\Attributes\\WithoutErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Framework/Attributes/WithoutErrorHandler.php', | ||||
|     'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', | ||||
| @@ -402,26 +378,36 @@ return array( | ||||
|     'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\CannotCloneTestDoubleForReadonlyClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\ErrorCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\GeneratedAsMockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\GeneratedAsTestStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\DoubledClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\DuplicateMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/DuplicateMethodException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/Exception.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\HookedProperty' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\HookedPropertyGenerator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\InvalidMethodNameException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidMethodNameException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MethodNamedMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MockClass' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\SoapExtensionNotAvailableException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\TemplateLoader' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/TemplateLoader.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTypeException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php', | ||||
| @@ -439,6 +425,7 @@ return array( | ||||
|     'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\MockObjectApi' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\MockObjectInternal' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\MutableStubApi' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\NeverReturningMethodException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/NeverReturningMethodException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\NoMoreReturnValuesConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/NoMoreReturnValuesConfiguredException.php', | ||||
|     'PHPUnit\\Framework\\MockObject\\ProxiedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ProxiedCloneMethod.php', | ||||
| @@ -506,7 +493,7 @@ return array( | ||||
|     'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', | ||||
|     'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', | ||||
|     'PHPUnit\\Framework\\UnknownClassOrInterfaceException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownClassOrInterfaceException.php', | ||||
|     'PHPUnit\\Framework\\UnknownNativeTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php', | ||||
|     'PHPUnit\\Framework\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php', | ||||
|     'PHPUnit\\Logging\\EventLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/EventLogger.php', | ||||
|     'PHPUnit\\Logging\\JUnit\\JunitXmlLogger' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php', | ||||
|     'PHPUnit\\Logging\\JUnit\\Subscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/Subscriber.php', | ||||
| @@ -563,6 +550,9 @@ return array( | ||||
|     'PHPUnit\\Logging\\TestDox\\TestTriggeredWarningSubscriber' => $vendorDir . '/phpunit/phpunit/src/Logging/TestDox/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', | ||||
|     'PHPUnit\\Metadata\\After' => $vendorDir . '/phpunit/phpunit/src/Metadata/After.php', | ||||
|     'PHPUnit\\Metadata\\AfterClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/AfterClass.php', | ||||
|     'PHPUnit\\Metadata\\Annotation\\Parser\\DocBlock' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php', | ||||
|     'PHPUnit\\Metadata\\Annotation\\Parser\\Registry' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php', | ||||
|     'PHPUnit\\Metadata\\AnnotationsAreNotSupportedForInternalClassesException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php', | ||||
|     'PHPUnit\\Metadata\\Api\\CodeCoverage' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php', | ||||
|     'PHPUnit\\Metadata\\Api\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/DataProvider.php', | ||||
|     'PHPUnit\\Metadata\\Api\\Dependencies' => $vendorDir . '/phpunit/phpunit/src/Metadata/Api/Dependencies.php', | ||||
| @@ -573,12 +563,11 @@ return array( | ||||
|     'PHPUnit\\Metadata\\BackupStaticProperties' => $vendorDir . '/phpunit/phpunit/src/Metadata/BackupStaticProperties.php', | ||||
|     'PHPUnit\\Metadata\\Before' => $vendorDir . '/phpunit/phpunit/src/Metadata/Before.php', | ||||
|     'PHPUnit\\Metadata\\BeforeClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/BeforeClass.php', | ||||
|     'PHPUnit\\Metadata\\Covers' => $vendorDir . '/phpunit/phpunit/src/Metadata/Covers.php', | ||||
|     'PHPUnit\\Metadata\\CoversClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClass.php', | ||||
|     'PHPUnit\\Metadata\\CoversClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php', | ||||
|     'PHPUnit\\Metadata\\CoversClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php', | ||||
|     'PHPUnit\\Metadata\\CoversDefaultClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversDefaultClass.php', | ||||
|     'PHPUnit\\Metadata\\CoversFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversFunction.php', | ||||
|     'PHPUnit\\Metadata\\CoversMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversMethod.php', | ||||
|     'PHPUnit\\Metadata\\CoversNamespace' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversNamespace.php', | ||||
|     'PHPUnit\\Metadata\\CoversNothing' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversNothing.php', | ||||
|     'PHPUnit\\Metadata\\CoversTrait' => $vendorDir . '/phpunit/phpunit/src/Metadata/CoversTrait.php', | ||||
|     'PHPUnit\\Metadata\\DataProvider' => $vendorDir . '/phpunit/phpunit/src/Metadata/DataProvider.php', | ||||
| @@ -597,14 +586,16 @@ return array( | ||||
|     'PHPUnit\\Metadata\\MetadataCollection' => $vendorDir . '/phpunit/phpunit/src/Metadata/MetadataCollection.php', | ||||
|     'PHPUnit\\Metadata\\MetadataCollectionIterator' => $vendorDir . '/phpunit/phpunit/src/Metadata/MetadataCollectionIterator.php', | ||||
|     'PHPUnit\\Metadata\\NoVersionRequirementException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/NoVersionRequirementException.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\AnnotationParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\AttributeParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\CachingParser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/CachingParser.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\Parser' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Parser.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\ParserChain' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/ParserChain.php', | ||||
|     'PHPUnit\\Metadata\\Parser\\Registry' => $vendorDir . '/phpunit/phpunit/src/Metadata/Parser/Registry.php', | ||||
|     'PHPUnit\\Metadata\\PostCondition' => $vendorDir . '/phpunit/phpunit/src/Metadata/PostCondition.php', | ||||
|     'PHPUnit\\Metadata\\PreCondition' => $vendorDir . '/phpunit/phpunit/src/Metadata/PreCondition.php', | ||||
|     'PHPUnit\\Metadata\\PreserveGlobalState' => $vendorDir . '/phpunit/phpunit/src/Metadata/PreserveGlobalState.php', | ||||
|     'PHPUnit\\Metadata\\RequiresEnvironmentVariable' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php', | ||||
|     'PHPUnit\\Metadata\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php', | ||||
|     'PHPUnit\\Metadata\\RequiresFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresFunction.php', | ||||
|     'PHPUnit\\Metadata\\RequiresMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresMethod.php', | ||||
|     'PHPUnit\\Metadata\\RequiresOperatingSystem' => $vendorDir . '/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php', | ||||
| @@ -620,12 +611,11 @@ return array( | ||||
|     'PHPUnit\\Metadata\\Test' => $vendorDir . '/phpunit/phpunit/src/Metadata/Test.php', | ||||
|     'PHPUnit\\Metadata\\TestDox' => $vendorDir . '/phpunit/phpunit/src/Metadata/TestDox.php', | ||||
|     'PHPUnit\\Metadata\\TestWith' => $vendorDir . '/phpunit/phpunit/src/Metadata/TestWith.php', | ||||
|     'PHPUnit\\Metadata\\Uses' => $vendorDir . '/phpunit/phpunit/src/Metadata/Uses.php', | ||||
|     'PHPUnit\\Metadata\\UsesClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClass.php', | ||||
|     'PHPUnit\\Metadata\\UsesClassesThatExtendClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php', | ||||
|     'PHPUnit\\Metadata\\UsesClassesThatImplementInterface' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php', | ||||
|     'PHPUnit\\Metadata\\UsesDefaultClass' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesDefaultClass.php', | ||||
|     'PHPUnit\\Metadata\\UsesFunction' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesFunction.php', | ||||
|     'PHPUnit\\Metadata\\UsesMethod' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesMethod.php', | ||||
|     'PHPUnit\\Metadata\\UsesNamespace' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesNamespace.php', | ||||
|     'PHPUnit\\Metadata\\UsesTrait' => $vendorDir . '/phpunit/phpunit/src/Metadata/UsesTrait.php', | ||||
|     'PHPUnit\\Metadata\\Version\\ComparisonRequirement' => $vendorDir . '/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php', | ||||
|     'PHPUnit\\Metadata\\Version\\ConstraintRequirement' => $vendorDir . '/phpunit/phpunit/src/Metadata/Version/ConstraintRequirement.php', | ||||
| @@ -923,6 +913,7 @@ return array( | ||||
|     'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocation' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php', | ||||
|     'PHPUnit\\TextUI\\XmlConfiguration\\ValidationResult' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php', | ||||
|     'PHPUnit\\TextUI\\XmlConfiguration\\Validator' => $vendorDir . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/Validator.php', | ||||
|     'PHPUnit\\Util\\Cloner' => $vendorDir . '/phpunit/phpunit/src/Util/Cloner.php', | ||||
|     'PHPUnit\\Util\\Color' => $vendorDir . '/phpunit/phpunit/src/Util/Color.php', | ||||
|     'PHPUnit\\Util\\Exception' => $vendorDir . '/phpunit/phpunit/src/Util/Exception/Exception.php', | ||||
|     'PHPUnit\\Util\\ExcludeList' => $vendorDir . '/phpunit/phpunit/src/Util/ExcludeList.php', | ||||
| @@ -1021,270 +1012,6 @@ return array( | ||||
|     'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', | ||||
|     'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', | ||||
|     'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', | ||||
|     'PhpParser\\Builder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder.php', | ||||
|     'PhpParser\\BuilderFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', | ||||
|     'PhpParser\\BuilderHelpers' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php', | ||||
|     'PhpParser\\Builder\\ClassConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php', | ||||
|     'PhpParser\\Builder\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', | ||||
|     'PhpParser\\Builder\\Declaration' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', | ||||
|     'PhpParser\\Builder\\EnumCase' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php', | ||||
|     'PhpParser\\Builder\\Enum_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Enum_.php', | ||||
|     'PhpParser\\Builder\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', | ||||
|     'PhpParser\\Builder\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', | ||||
|     'PhpParser\\Builder\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', | ||||
|     'PhpParser\\Builder\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', | ||||
|     'PhpParser\\Builder\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', | ||||
|     'PhpParser\\Builder\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', | ||||
|     'PhpParser\\Builder\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', | ||||
|     'PhpParser\\Builder\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php', | ||||
|     'PhpParser\\Builder\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php', | ||||
|     'PhpParser\\Builder\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', | ||||
|     'PhpParser\\Builder\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', | ||||
|     'PhpParser\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php', | ||||
|     'PhpParser\\Comment\\Doc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', | ||||
|     'PhpParser\\ConstExprEvaluationException' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php', | ||||
|     'PhpParser\\ConstExprEvaluator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php', | ||||
|     'PhpParser\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Error.php', | ||||
|     'PhpParser\\ErrorHandler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', | ||||
|     'PhpParser\\ErrorHandler\\Collecting' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', | ||||
|     'PhpParser\\ErrorHandler\\Throwing' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', | ||||
|     'PhpParser\\Internal\\DiffElem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php', | ||||
|     'PhpParser\\Internal\\Differ' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php', | ||||
|     'PhpParser\\Internal\\PrintableNewAnonClassNode' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php', | ||||
|     'PhpParser\\Internal\\TokenPolyfill' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php', | ||||
|     'PhpParser\\Internal\\TokenStream' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php', | ||||
|     'PhpParser\\JsonDecoder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', | ||||
|     'PhpParser\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php', | ||||
|     'PhpParser\\Lexer\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\AsymmetricVisibilityTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\AttributeEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\EnumTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\ExplicitOctalEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\KeywordEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\MatchTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\NullsafeTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\PropertyTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\ReadonlyFunctionTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\ReadonlyTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\ReverseEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php', | ||||
|     'PhpParser\\Lexer\\TokenEmulator\\TokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php', | ||||
|     'PhpParser\\Modifiers' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Modifiers.php', | ||||
|     'PhpParser\\NameContext' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NameContext.php', | ||||
|     'PhpParser\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php', | ||||
|     'PhpParser\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', | ||||
|     'PhpParser\\NodeDumper' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', | ||||
|     'PhpParser\\NodeFinder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeFinder.php', | ||||
|     'PhpParser\\NodeTraverser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', | ||||
|     'PhpParser\\NodeTraverserInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', | ||||
|     'PhpParser\\NodeVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', | ||||
|     'PhpParser\\NodeVisitorAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', | ||||
|     'PhpParser\\NodeVisitor\\CloningVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php', | ||||
|     'PhpParser\\NodeVisitor\\CommentAnnotatingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php', | ||||
|     'PhpParser\\NodeVisitor\\FindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php', | ||||
|     'PhpParser\\NodeVisitor\\FirstFindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php', | ||||
|     'PhpParser\\NodeVisitor\\NameResolver' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', | ||||
|     'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php', | ||||
|     'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php', | ||||
|     'PhpParser\\Node\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', | ||||
|     'PhpParser\\Node\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php', | ||||
|     'PhpParser\\Node\\Attribute' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php', | ||||
|     'PhpParser\\Node\\AttributeGroup' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php', | ||||
|     'PhpParser\\Node\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php', | ||||
|     'PhpParser\\Node\\ComplexType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/ComplexType.php', | ||||
|     'PhpParser\\Node\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', | ||||
|     'PhpParser\\Node\\DeclareItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php', | ||||
|     'PhpParser\\Node\\Expr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', | ||||
|     'PhpParser\\Node\\Expr\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', | ||||
|     'PhpParser\\Node\\Expr\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', | ||||
|     'PhpParser\\Node\\Expr\\ArrowFunction' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php', | ||||
|     'PhpParser\\Node\\Expr\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', | ||||
|     'PhpParser\\Node\\Expr\\AssignRef' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', | ||||
|     'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', | ||||
|     'PhpParser\\Node\\Expr\\BitwiseNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', | ||||
|     'PhpParser\\Node\\Expr\\BooleanNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', | ||||
|     'PhpParser\\Node\\Expr\\CallLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Bool_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Double' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Object_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', | ||||
|     'PhpParser\\Node\\Expr\\Cast\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', | ||||
|     'PhpParser\\Node\\Expr\\ClassConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\Clone_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', | ||||
|     'PhpParser\\Node\\Expr\\Closure' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', | ||||
|     'PhpParser\\Node\\Expr\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', | ||||
|     'PhpParser\\Node\\Expr\\ConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\Empty_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', | ||||
|     'PhpParser\\Node\\Expr\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', | ||||
|     'PhpParser\\Node\\Expr\\ErrorSuppress' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', | ||||
|     'PhpParser\\Node\\Expr\\Eval_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', | ||||
|     'PhpParser\\Node\\Expr\\Exit_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', | ||||
|     'PhpParser\\Node\\Expr\\FuncCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', | ||||
|     'PhpParser\\Node\\Expr\\Include_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', | ||||
|     'PhpParser\\Node\\Expr\\Instanceof_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', | ||||
|     'PhpParser\\Node\\Expr\\Isset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', | ||||
|     'PhpParser\\Node\\Expr\\List_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', | ||||
|     'PhpParser\\Node\\Expr\\Match_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php', | ||||
|     'PhpParser\\Node\\Expr\\MethodCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', | ||||
|     'PhpParser\\Node\\Expr\\New_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', | ||||
|     'PhpParser\\Node\\Expr\\NullsafeMethodCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php', | ||||
|     'PhpParser\\Node\\Expr\\NullsafePropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\PostDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', | ||||
|     'PhpParser\\Node\\Expr\\PostInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', | ||||
|     'PhpParser\\Node\\Expr\\PreDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', | ||||
|     'PhpParser\\Node\\Expr\\PreInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', | ||||
|     'PhpParser\\Node\\Expr\\Print_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', | ||||
|     'PhpParser\\Node\\Expr\\PropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\ShellExec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', | ||||
|     'PhpParser\\Node\\Expr\\StaticCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', | ||||
|     'PhpParser\\Node\\Expr\\StaticPropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', | ||||
|     'PhpParser\\Node\\Expr\\Ternary' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', | ||||
|     'PhpParser\\Node\\Expr\\Throw_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php', | ||||
|     'PhpParser\\Node\\Expr\\UnaryMinus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', | ||||
|     'PhpParser\\Node\\Expr\\UnaryPlus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', | ||||
|     'PhpParser\\Node\\Expr\\Variable' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', | ||||
|     'PhpParser\\Node\\Expr\\YieldFrom' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', | ||||
|     'PhpParser\\Node\\Expr\\Yield_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', | ||||
|     'PhpParser\\Node\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', | ||||
|     'PhpParser\\Node\\Identifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php', | ||||
|     'PhpParser\\Node\\InterpolatedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php', | ||||
|     'PhpParser\\Node\\IntersectionType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php', | ||||
|     'PhpParser\\Node\\MatchArm' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/MatchArm.php', | ||||
|     'PhpParser\\Node\\Name' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name.php', | ||||
|     'PhpParser\\Node\\Name\\FullyQualified' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', | ||||
|     'PhpParser\\Node\\Name\\Relative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', | ||||
|     'PhpParser\\Node\\NullableType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', | ||||
|     'PhpParser\\Node\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Param.php', | ||||
|     'PhpParser\\Node\\PropertyHook' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php', | ||||
|     'PhpParser\\Node\\PropertyItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php', | ||||
|     'PhpParser\\Node\\Scalar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', | ||||
|     'PhpParser\\Node\\Scalar\\DNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', | ||||
|     'PhpParser\\Node\\Scalar\\Encapsed' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', | ||||
|     'PhpParser\\Node\\Scalar\\EncapsedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', | ||||
|     'PhpParser\\Node\\Scalar\\Float_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php', | ||||
|     'PhpParser\\Node\\Scalar\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php', | ||||
|     'PhpParser\\Node\\Scalar\\InterpolatedString' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php', | ||||
|     'PhpParser\\Node\\Scalar\\LNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\File' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Line' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php', | ||||
|     'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', | ||||
|     'PhpParser\\Node\\Scalar\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', | ||||
|     'PhpParser\\Node\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/StaticVar.php', | ||||
|     'PhpParser\\Node\\Stmt' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', | ||||
|     'PhpParser\\Node\\Stmt\\Block' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php', | ||||
|     'PhpParser\\Node\\Stmt\\Break_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Case_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Catch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', | ||||
|     'PhpParser\\Node\\Stmt\\ClassConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', | ||||
|     'PhpParser\\Node\\Stmt\\ClassLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', | ||||
|     'PhpParser\\Node\\Stmt\\ClassMethod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', | ||||
|     'PhpParser\\Node\\Stmt\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Continue_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', | ||||
|     'PhpParser\\Node\\Stmt\\DeclareDeclare' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', | ||||
|     'PhpParser\\Node\\Stmt\\Declare_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Do_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Echo_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', | ||||
|     'PhpParser\\Node\\Stmt\\ElseIf_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Else_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', | ||||
|     'PhpParser\\Node\\Stmt\\EnumCase' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php', | ||||
|     'PhpParser\\Node\\Stmt\\Enum_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Expression' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php', | ||||
|     'PhpParser\\Node\\Stmt\\Finally_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', | ||||
|     'PhpParser\\Node\\Stmt\\For_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Foreach_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Global_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Goto_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', | ||||
|     'PhpParser\\Node\\Stmt\\GroupUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', | ||||
|     'PhpParser\\Node\\Stmt\\HaltCompiler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', | ||||
|     'PhpParser\\Node\\Stmt\\If_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', | ||||
|     'PhpParser\\Node\\Stmt\\InlineHTML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', | ||||
|     'PhpParser\\Node\\Stmt\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Label' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', | ||||
|     'PhpParser\\Node\\Stmt\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Nop' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', | ||||
|     'PhpParser\\Node\\Stmt\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', | ||||
|     'PhpParser\\Node\\Stmt\\PropertyProperty' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', | ||||
|     'PhpParser\\Node\\Stmt\\Return_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', | ||||
|     'PhpParser\\Node\\Stmt\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', | ||||
|     'PhpParser\\Node\\Stmt\\Static_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', | ||||
|     'PhpParser\\Node\\Stmt\\Switch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', | ||||
|     'PhpParser\\Node\\Stmt\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', | ||||
|     'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', | ||||
|     'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', | ||||
|     'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', | ||||
|     'PhpParser\\Node\\Stmt\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', | ||||
|     'PhpParser\\Node\\Stmt\\TryCatch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', | ||||
|     'PhpParser\\Node\\Stmt\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', | ||||
|     'PhpParser\\Node\\Stmt\\UseUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', | ||||
|     'PhpParser\\Node\\Stmt\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', | ||||
|     'PhpParser\\Node\\Stmt\\While_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', | ||||
|     'PhpParser\\Node\\UnionType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/UnionType.php', | ||||
|     'PhpParser\\Node\\UseItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/UseItem.php', | ||||
|     'PhpParser\\Node\\VarLikeIdentifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php', | ||||
|     'PhpParser\\Node\\VariadicPlaceholder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php', | ||||
|     'PhpParser\\Parser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser.php', | ||||
|     'PhpParser\\ParserAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', | ||||
|     'PhpParser\\ParserFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', | ||||
|     'PhpParser\\Parser\\Php7' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', | ||||
|     'PhpParser\\Parser\\Php8' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php8.php', | ||||
|     'PhpParser\\PhpVersion' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PhpVersion.php', | ||||
|     'PhpParser\\PrettyPrinter' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter.php', | ||||
|     'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', | ||||
|     'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', | ||||
|     'PhpParser\\Token' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Token.php', | ||||
|     'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', | ||||
|     'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php', | ||||
|     'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', | ||||
| @@ -1295,6 +1022,7 @@ return array( | ||||
|     'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Data\\ProcessedCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Data\\RawCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', | ||||
| @@ -1304,7 +1032,6 @@ return array( | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\XdebugDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/XdebugDriver.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotEnabledException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugNotEnabledException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Driver\\XdebugVersionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\FileCouldNotBeWrittenException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/FileCouldNotBeWrittenException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', | ||||
| @@ -1349,36 +1076,12 @@ return array( | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Class_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Function_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Interface_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\LinesOfCode' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Trait_' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Visibility' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Class_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Class_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatExtendClass' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatImplementInterface' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Function_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Function_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\InvalidCodeCoverageTargetException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\MapBuilder' => $vendorDir . '/phpunit/php-code-coverage/src/Target/MapBuilder.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Mapper' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Mapper.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Method.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Namespace_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Namespace_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Target' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Target.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollection' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollection.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionIterator' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionValidator' => $vendorDir . '/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\Trait_' => $vendorDir . '/phpunit/php-code-coverage/src/Target/Trait_.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationFailure' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationFailure.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationResult' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationResult.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationSuccess' => $vendorDir . '/phpunit/php-code-coverage/src/Target/ValidationSuccess.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Known' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Known.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Large' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Large.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Medium' => $vendorDir . '/phpunit/php-code-coverage/src/TestSize/Medium.php', | ||||
| @@ -1396,6 +1099,23 @@ return array( | ||||
|     'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Percentage.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', | ||||
|     'SebastianBergmann\\CodeCoverage\\XmlException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XmlException.php', | ||||
|     'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', | ||||
|     'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => $vendorDir . '/sebastian/code-unit/src/ClassMethodUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\ClassUnit' => $vendorDir . '/sebastian/code-unit/src/ClassUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\CodeUnit' => $vendorDir . '/sebastian/code-unit/src/CodeUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollection.php', | ||||
|     'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => $vendorDir . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', | ||||
|     'SebastianBergmann\\CodeUnit\\Exception' => $vendorDir . '/sebastian/code-unit/src/exceptions/Exception.php', | ||||
|     'SebastianBergmann\\CodeUnit\\FileUnit' => $vendorDir . '/sebastian/code-unit/src/FileUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\FunctionUnit' => $vendorDir . '/sebastian/code-unit/src/FunctionUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceMethodUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\InterfaceUnit' => $vendorDir . '/sebastian/code-unit/src/InterfaceUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', | ||||
|     'SebastianBergmann\\CodeUnit\\Mapper' => $vendorDir . '/sebastian/code-unit/src/Mapper.php', | ||||
|     'SebastianBergmann\\CodeUnit\\NoTraitException' => $vendorDir . '/sebastian/code-unit/src/exceptions/NoTraitException.php', | ||||
|     'SebastianBergmann\\CodeUnit\\ReflectionException' => $vendorDir . '/sebastian/code-unit/src/exceptions/ReflectionException.php', | ||||
|     'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => $vendorDir . '/sebastian/code-unit/src/TraitMethodUnit.php', | ||||
|     'SebastianBergmann\\CodeUnit\\TraitUnit' => $vendorDir . '/sebastian/code-unit/src/TraitUnit.php', | ||||
|     'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', | ||||
|     'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', | ||||
|     'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', | ||||
| @@ -1460,6 +1180,7 @@ return array( | ||||
|     'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', | ||||
|     'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => $vendorDir . '/sebastian/lines-of-code/src/LineCountingVisitor.php', | ||||
|     'SebastianBergmann\\LinesOfCode\\LinesOfCode' => $vendorDir . '/sebastian/lines-of-code/src/LinesOfCode.php', | ||||
|     'SebastianBergmann\\LinesOfCode\\NegativeValueException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', | ||||
|     'SebastianBergmann\\LinesOfCode\\RuntimeException' => $vendorDir . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', | ||||
|     'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', | ||||
|     'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', | ||||
| @@ -1504,16 +1225,6 @@ return array( | ||||
|     'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', | ||||
|     'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', | ||||
|     'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', | ||||
|     'goodboyalex\\php_components_pack\\classes\\ActionState' => $baseDir . '/sources/classes/ActionState.php', | ||||
|     'goodboyalex\\php_components_pack\\classes\\ClassMapper' => $baseDir . '/sources/classes/ClassMapper.php', | ||||
|     'goodboyalex\\php_components_pack\\enums\\MessageType' => $baseDir . '/sources/enums/MessageType.php', | ||||
|     'goodboyalex\\php_components_pack\\extensions\\ArrayExtension' => $baseDir . '/sources/extensions/ArrayExtension.php', | ||||
|     'goodboyalex\\php_components_pack\\extensions\\GUIDExtension' => $baseDir . '/sources/extensions/GUIDExtension.php', | ||||
|     'goodboyalex\\php_components_pack\\extensions\\StringExtension' => $baseDir . '/sources/extensions/StringExtension.php', | ||||
|     'goodboyalex\\php_components_pack\\interfaces\\ISerializable' => $baseDir . '/sources/interfaces/ISerializable.php', | ||||
|     'goodboyalex\\php_components_pack\\models\\ActionStateMessageModel' => $baseDir . '/sources/models/ActionStateMessageModel.php', | ||||
|     'goodboyalex\\php_components_pack\\tests\\GUIDExtensionTest' => $baseDir . '/tests/GUIDExtensionTest.php', | ||||
|     'goodboyalex\\php_components_pack\\traits\\EnumExtensionsTrait' => $baseDir . '/sources/traits/EnumExtensionsTrait.php', | ||||
|     'staabm\\SideEffectsDetector\\SideEffect' => $vendorDir . '/staabm/side-effects-detector/lib/SideEffect.php', | ||||
|     'staabm\\SideEffectsDetector\\SideEffectsDetector' => $vendorDir . '/staabm/side-effects-detector/lib/SideEffectsDetector.php', | ||||
| ); | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/composer/autoload_psr4.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/composer/autoload_psr4.php
									
									
									
									
										vendored
									
									
								
							| @@ -12,6 +12,7 @@ return array( | ||||
|     'goodboyalex\\php_components_pack\\interfaces\\' => array($baseDir . '/sources/interfaces'), | ||||
|     'goodboyalex\\php_components_pack\\extensions\\' => array($baseDir . '/sources/extensions'), | ||||
|     'goodboyalex\\php_components_pack\\enums\\' => array($baseDir . '/sources/enums'), | ||||
|     'goodboyalex\\php_components_pack\\classes\\' => array($baseDir . '/sources/classes'), | ||||
|     'goodboyalex\\php_components_pack\\' => array($baseDir . '/sources'), | ||||
|     'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), | ||||
|     'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), | ||||
|   | ||||
							
								
								
									
										406
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										406
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
								
							| @@ -20,6 +20,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|             'goodboyalex\\php_components_pack\\interfaces\\' => 43, | ||||
|             'goodboyalex\\php_components_pack\\extensions\\' => 43, | ||||
|             'goodboyalex\\php_components_pack\\enums\\' => 38, | ||||
|             'goodboyalex\\php_components_pack\\classes\\' => 40, | ||||
|             'goodboyalex\\php_components_pack\\' => 32, | ||||
|         ), | ||||
|         'P' =>  | ||||
| @@ -57,6 +58,10 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         array ( | ||||
|             0 => __DIR__ . '/../..' . '/sources/enums', | ||||
|         ), | ||||
|         'goodboyalex\\php_components_pack\\classes\\' =>  | ||||
|         array ( | ||||
|             0 => __DIR__ . '/../..' . '/sources/classes', | ||||
|         ), | ||||
|         'goodboyalex\\php_components_pack\\' =>  | ||||
|         array ( | ||||
|             0 => __DIR__ . '/../..' . '/sources', | ||||
| @@ -73,32 +78,6 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|  | ||||
|     public static $classMap = array ( | ||||
|         'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', | ||||
|         'DeepCopy\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php', | ||||
|         'DeepCopy\\Exception\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php', | ||||
|         'DeepCopy\\Exception\\PropertyException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php', | ||||
|         'DeepCopy\\Filter\\ChainableFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php', | ||||
|         'DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php', | ||||
|         'DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php', | ||||
|         'DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php', | ||||
|         'DeepCopy\\Filter\\Filter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php', | ||||
|         'DeepCopy\\Filter\\KeepFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php', | ||||
|         'DeepCopy\\Filter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php', | ||||
|         'DeepCopy\\Filter\\SetNullFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php', | ||||
|         'DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php', | ||||
|         'DeepCopy\\Matcher\\Matcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php', | ||||
|         'DeepCopy\\Matcher\\PropertyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php', | ||||
|         'DeepCopy\\Matcher\\PropertyNameMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php', | ||||
|         'DeepCopy\\Matcher\\PropertyTypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php', | ||||
|         'DeepCopy\\Reflection\\ReflectionHelper' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php', | ||||
|         'DeepCopy\\TypeFilter\\Date\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\Date\\DatePeriodFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DatePeriodFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\Spl\\ArrayObjectFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedList' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php', | ||||
|         'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php', | ||||
|         'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php', | ||||
|         'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php', | ||||
|         'PHPUnit\\Event\\Application\\Finished' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/Finished.php', | ||||
|         'PHPUnit\\Event\\Application\\FinishedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/FinishedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Application\\Started' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Application/Started.php', | ||||
| @@ -156,10 +135,11 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Event\\Telemetry\\Info' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Info.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\MemoryMeter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryMeter.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\MemoryUsage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/MemoryUsage.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\Php81GarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Php81GarbageCollectorStatusProvider.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\Php83GarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Php83GarbageCollectorStatusProvider.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\Snapshot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/Snapshot.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\StopWatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/StopWatch.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\System' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/System.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\SystemGarbageCollectorStatusProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemGarbageCollectorStatusProvider.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\SystemMemoryMeter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemMemoryMeter.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\SystemStopWatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatch.php', | ||||
|         'PHPUnit\\Event\\Telemetry\\SystemStopWatchWithOffset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Value/Telemetry/SystemStopWatchWithOffset.php', | ||||
| @@ -266,8 +246,14 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Event\\Test\\MarkedIncompleteSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/MarkedIncompleteSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForAbstractClassCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForAbstractClassCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForIntersectionOfInterfacesCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForIntersectionOfInterfacesCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForTraitCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectForTraitCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectForTraitCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\MockObjectFromWsdlCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/MockObjectFromWsdlCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\NoComparisonFailureException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Exception/NoComparisonFailureException.php', | ||||
|         'PHPUnit\\Event\\Test\\NoticeTriggered' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggered.php', | ||||
|         'PHPUnit\\Event\\Test\\NoticeTriggeredSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Issue/NoticeTriggeredSubscriber.php', | ||||
| @@ -309,6 +295,8 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Event\\Test\\PrintedUnexpectedOutputSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/PrintedUnexpectedOutputSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\Skipped' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/Skipped.php', | ||||
|         'PHPUnit\\Event\\Test\\SkippedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/Outcome/SkippedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\TestProxyCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\TestProxyCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestProxyCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\TestStubCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreated.php', | ||||
|         'PHPUnit\\Event\\Test\\TestStubCreatedSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubCreatedSubscriber.php', | ||||
|         'PHPUnit\\Event\\Test\\TestStubForIntersectionOfInterfacesCreated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Event/Events/Test/TestDouble/TestStubForIntersectionOfInterfacesCreated.php', | ||||
| @@ -332,11 +320,8 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\Attributes\\Before' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Before.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\BeforeClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/BeforeClass.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClass.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatExtendClass.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversClassesThatImplementInterface.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversFunction.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversMethod.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversNamespace.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversNothing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversNothing.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\CoversTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/CoversTrait.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/DataProvider.php', | ||||
| @@ -362,7 +347,6 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\Attributes\\PostCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PostCondition.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\PreCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PreCondition.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\PreserveGlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/PreserveGlobalState.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\RequiresEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresEnvironmentVariable.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\RequiresFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresFunction.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\RequiresMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresMethod.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\RequiresOperatingSystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/RequiresOperatingSystem.php', | ||||
| @@ -382,11 +366,8 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\Attributes\\TestWithJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/TestWithJson.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\Ticket' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/Ticket.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClass.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatExtendClass.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesClassesThatImplementInterface.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesFunction.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesMethod.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesNamespace.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\UsesTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/UsesTrait.php', | ||||
|         'PHPUnit\\Framework\\Attributes\\WithoutErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Attributes/WithoutErrorHandler.php', | ||||
|         'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/CodeCoverageException.php', | ||||
| @@ -468,26 +449,36 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/MethodNameMatch.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/ParametersMatch.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Builder/Stub.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\CannotCloneTestDoubleForReadonlyClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotCloneTestDoubleForReadonlyClassException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\CannotUseOnlyMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/CannotUseOnlyMethodsException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\ConfigurableMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ConfigurableMethod.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\DoubledCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/DoubledCloneMethod.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\ErrorCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ErrorCloneMethod.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\GeneratedAsMockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsMockObject.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\GeneratedAsTestStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/GeneratedAsTestStub.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\CannotUseAddMethodsException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/CannotUseAddMethodsException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsEnumerationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsEnumerationException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\ClassIsFinalException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ClassIsFinalException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\DoubledClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledClass.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethod.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\DoubledMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/DoubledMethodSet.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\DuplicateMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/DuplicateMethodException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/Exception.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Generator.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\HookedProperty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedProperty.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\HookedPropertyGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/HookedPropertyGenerator.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\InvalidMethodNameException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/InvalidMethodNameException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MethodNamedMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/MethodNamedMethodException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MockClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockClass.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethod.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockMethodSet.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockTrait.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/MockType.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\NameAlreadyInUseException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/NameAlreadyInUseException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/OriginalConstructorInvocationRequiredException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/ReflectionException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/RuntimeException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\SoapExtensionNotAvailableException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/SoapExtensionNotAvailableException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\TemplateLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/TemplateLoader.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownClassException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTraitException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Generator\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator/Exception/UnknownTypeException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\IncompatibleReturnValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/IncompatibleReturnValueException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Invocation.php', | ||||
| @@ -505,6 +496,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObject.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\MockObjectApi' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MockObjectApi.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\MockObjectInternal' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Interface/MockObjectInternal.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\MutableStubApi' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/MutableStubApi.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\NeverReturningMethodException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/NeverReturningMethodException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\NoMoreReturnValuesConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/NoMoreReturnValuesConfiguredException.php', | ||||
|         'PHPUnit\\Framework\\MockObject\\ProxiedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Runtime/Api/ProxiedCloneMethod.php', | ||||
| @@ -572,7 +564,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', | ||||
|         'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', | ||||
|         'PHPUnit\\Framework\\UnknownClassOrInterfaceException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownClassOrInterfaceException.php', | ||||
|         'PHPUnit\\Framework\\UnknownNativeTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownNativeTypeException.php', | ||||
|         'PHPUnit\\Framework\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/UnknownTypeException.php', | ||||
|         'PHPUnit\\Logging\\EventLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/EventLogger.php', | ||||
|         'PHPUnit\\Logging\\JUnit\\JunitXmlLogger' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/JunitXmlLogger.php', | ||||
|         'PHPUnit\\Logging\\JUnit\\Subscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/JUnit/Subscriber/Subscriber.php', | ||||
| @@ -629,6 +621,9 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Logging\\TestDox\\TestTriggeredWarningSubscriber' => __DIR__ . '/..' . '/phpunit/phpunit/src/Logging/TestDox/TestResult/Subscriber/TestTriggeredWarningSubscriber.php', | ||||
|         'PHPUnit\\Metadata\\After' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/After.php', | ||||
|         'PHPUnit\\Metadata\\AfterClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/AfterClass.php', | ||||
|         'PHPUnit\\Metadata\\Annotation\\Parser\\DocBlock' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Annotation/DocBlock.php', | ||||
|         'PHPUnit\\Metadata\\Annotation\\Parser\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Annotation/Registry.php', | ||||
|         'PHPUnit\\Metadata\\AnnotationsAreNotSupportedForInternalClassesException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/AnnotationsAreNotSupportedForInternalClassesException.php', | ||||
|         'PHPUnit\\Metadata\\Api\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/CodeCoverage.php', | ||||
|         'PHPUnit\\Metadata\\Api\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/DataProvider.php', | ||||
|         'PHPUnit\\Metadata\\Api\\Dependencies' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Api/Dependencies.php', | ||||
| @@ -639,12 +634,11 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Metadata\\BackupStaticProperties' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/BackupStaticProperties.php', | ||||
|         'PHPUnit\\Metadata\\Before' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Before.php', | ||||
|         'PHPUnit\\Metadata\\BeforeClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/BeforeClass.php', | ||||
|         'PHPUnit\\Metadata\\Covers' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Covers.php', | ||||
|         'PHPUnit\\Metadata\\CoversClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClass.php', | ||||
|         'PHPUnit\\Metadata\\CoversClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClassesThatExtendClass.php', | ||||
|         'PHPUnit\\Metadata\\CoversClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversClassesThatImplementInterface.php', | ||||
|         'PHPUnit\\Metadata\\CoversDefaultClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversDefaultClass.php', | ||||
|         'PHPUnit\\Metadata\\CoversFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversFunction.php', | ||||
|         'PHPUnit\\Metadata\\CoversMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversMethod.php', | ||||
|         'PHPUnit\\Metadata\\CoversNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversNamespace.php', | ||||
|         'PHPUnit\\Metadata\\CoversNothing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversNothing.php', | ||||
|         'PHPUnit\\Metadata\\CoversTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/CoversTrait.php', | ||||
|         'PHPUnit\\Metadata\\DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/DataProvider.php', | ||||
| @@ -663,14 +657,16 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Metadata\\MetadataCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/MetadataCollection.php', | ||||
|         'PHPUnit\\Metadata\\MetadataCollectionIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/MetadataCollectionIterator.php', | ||||
|         'PHPUnit\\Metadata\\NoVersionRequirementException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/NoVersionRequirementException.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\AnnotationParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/AnnotationParser.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\AttributeParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/AttributeParser.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\CachingParser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/CachingParser.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\Parser' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Parser.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\ParserChain' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/ParserChain.php', | ||||
|         'PHPUnit\\Metadata\\Parser\\Registry' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Parser/Registry.php', | ||||
|         'PHPUnit\\Metadata\\PostCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PostCondition.php', | ||||
|         'PHPUnit\\Metadata\\PreCondition' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PreCondition.php', | ||||
|         'PHPUnit\\Metadata\\PreserveGlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/PreserveGlobalState.php', | ||||
|         'PHPUnit\\Metadata\\RequiresEnvironmentVariable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresEnvironmentVariable.php', | ||||
|         'PHPUnit\\Metadata\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Exception/ReflectionException.php', | ||||
|         'PHPUnit\\Metadata\\RequiresFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresFunction.php', | ||||
|         'PHPUnit\\Metadata\\RequiresMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresMethod.php', | ||||
|         'PHPUnit\\Metadata\\RequiresOperatingSystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/RequiresOperatingSystem.php', | ||||
| @@ -686,12 +682,11 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\Metadata\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Test.php', | ||||
|         'PHPUnit\\Metadata\\TestDox' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/TestDox.php', | ||||
|         'PHPUnit\\Metadata\\TestWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/TestWith.php', | ||||
|         'PHPUnit\\Metadata\\Uses' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Uses.php', | ||||
|         'PHPUnit\\Metadata\\UsesClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClass.php', | ||||
|         'PHPUnit\\Metadata\\UsesClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClassesThatExtendClass.php', | ||||
|         'PHPUnit\\Metadata\\UsesClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesClassesThatImplementInterface.php', | ||||
|         'PHPUnit\\Metadata\\UsesDefaultClass' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesDefaultClass.php', | ||||
|         'PHPUnit\\Metadata\\UsesFunction' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesFunction.php', | ||||
|         'PHPUnit\\Metadata\\UsesMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesMethod.php', | ||||
|         'PHPUnit\\Metadata\\UsesNamespace' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesNamespace.php', | ||||
|         'PHPUnit\\Metadata\\UsesTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/UsesTrait.php', | ||||
|         'PHPUnit\\Metadata\\Version\\ComparisonRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ComparisonRequirement.php', | ||||
|         'PHPUnit\\Metadata\\Version\\ConstraintRequirement' => __DIR__ . '/..' . '/phpunit/phpunit/src/Metadata/Version/ConstraintRequirement.php', | ||||
| @@ -989,6 +984,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PHPUnit\\TextUI\\XmlConfiguration\\UpdateSchemaLocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Migration/Migrations/UpdateSchemaLocation.php', | ||||
|         'PHPUnit\\TextUI\\XmlConfiguration\\ValidationResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/ValidationResult.php', | ||||
|         'PHPUnit\\TextUI\\XmlConfiguration\\Validator' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Configuration/Xml/Validator/Validator.php', | ||||
|         'PHPUnit\\Util\\Cloner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Cloner.php', | ||||
|         'PHPUnit\\Util\\Color' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Color.php', | ||||
|         'PHPUnit\\Util\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Exception/Exception.php', | ||||
|         'PHPUnit\\Util\\ExcludeList' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ExcludeList.php', | ||||
| @@ -1087,270 +1083,6 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', | ||||
|         'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', | ||||
|         'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', | ||||
|         'PhpParser\\Builder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder.php', | ||||
|         'PhpParser\\BuilderFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php', | ||||
|         'PhpParser\\BuilderHelpers' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php', | ||||
|         'PhpParser\\Builder\\ClassConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php', | ||||
|         'PhpParser\\Builder\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php', | ||||
|         'PhpParser\\Builder\\Declaration' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php', | ||||
|         'PhpParser\\Builder\\EnumCase' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php', | ||||
|         'PhpParser\\Builder\\Enum_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Enum_.php', | ||||
|         'PhpParser\\Builder\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php', | ||||
|         'PhpParser\\Builder\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php', | ||||
|         'PhpParser\\Builder\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php', | ||||
|         'PhpParser\\Builder\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Method.php', | ||||
|         'PhpParser\\Builder\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php', | ||||
|         'PhpParser\\Builder\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php', | ||||
|         'PhpParser\\Builder\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php', | ||||
|         'PhpParser\\Builder\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php', | ||||
|         'PhpParser\\Builder\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php', | ||||
|         'PhpParser\\Builder\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php', | ||||
|         'PhpParser\\Builder\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php', | ||||
|         'PhpParser\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php', | ||||
|         'PhpParser\\Comment\\Doc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php', | ||||
|         'PhpParser\\ConstExprEvaluationException' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php', | ||||
|         'PhpParser\\ConstExprEvaluator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php', | ||||
|         'PhpParser\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Error.php', | ||||
|         'PhpParser\\ErrorHandler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php', | ||||
|         'PhpParser\\ErrorHandler\\Collecting' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php', | ||||
|         'PhpParser\\ErrorHandler\\Throwing' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php', | ||||
|         'PhpParser\\Internal\\DiffElem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php', | ||||
|         'PhpParser\\Internal\\Differ' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php', | ||||
|         'PhpParser\\Internal\\PrintableNewAnonClassNode' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php', | ||||
|         'PhpParser\\Internal\\TokenPolyfill' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenPolyfill.php', | ||||
|         'PhpParser\\Internal\\TokenStream' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php', | ||||
|         'PhpParser\\JsonDecoder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php', | ||||
|         'PhpParser\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php', | ||||
|         'PhpParser\\Lexer\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\AsymmetricVisibilityTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AsymmetricVisibilityTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\AttributeEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/AttributeEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\EnumTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/EnumTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\ExplicitOctalEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ExplicitOctalEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\KeywordEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/KeywordEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\MatchTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/MatchTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\NullsafeTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/NullsafeTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\PropertyTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/PropertyTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\ReadonlyFunctionTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyFunctionTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\ReadonlyTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReadonlyTokenEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\ReverseEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/ReverseEmulator.php', | ||||
|         'PhpParser\\Lexer\\TokenEmulator\\TokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulator.php', | ||||
|         'PhpParser\\Modifiers' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Modifiers.php', | ||||
|         'PhpParser\\NameContext' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NameContext.php', | ||||
|         'PhpParser\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php', | ||||
|         'PhpParser\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php', | ||||
|         'PhpParser\\NodeDumper' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeDumper.php', | ||||
|         'PhpParser\\NodeFinder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeFinder.php', | ||||
|         'PhpParser\\NodeTraverser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php', | ||||
|         'PhpParser\\NodeTraverserInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php', | ||||
|         'PhpParser\\NodeVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php', | ||||
|         'PhpParser\\NodeVisitorAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php', | ||||
|         'PhpParser\\NodeVisitor\\CloningVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php', | ||||
|         'PhpParser\\NodeVisitor\\CommentAnnotatingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CommentAnnotatingVisitor.php', | ||||
|         'PhpParser\\NodeVisitor\\FindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php', | ||||
|         'PhpParser\\NodeVisitor\\FirstFindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php', | ||||
|         'PhpParser\\NodeVisitor\\NameResolver' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php', | ||||
|         'PhpParser\\NodeVisitor\\NodeConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NodeConnectingVisitor.php', | ||||
|         'PhpParser\\NodeVisitor\\ParentConnectingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/ParentConnectingVisitor.php', | ||||
|         'PhpParser\\Node\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php', | ||||
|         'PhpParser\\Node\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ArrayItem.php', | ||||
|         'PhpParser\\Node\\Attribute' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Attribute.php', | ||||
|         'PhpParser\\Node\\AttributeGroup' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/AttributeGroup.php', | ||||
|         'PhpParser\\Node\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ClosureUse.php', | ||||
|         'PhpParser\\Node\\ComplexType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/ComplexType.php', | ||||
|         'PhpParser\\Node\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Const_.php', | ||||
|         'PhpParser\\Node\\DeclareItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/DeclareItem.php', | ||||
|         'PhpParser\\Node\\Expr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr.php', | ||||
|         'PhpParser\\Node\\Expr\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php', | ||||
|         'PhpParser\\Node\\Expr\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php', | ||||
|         'PhpParser\\Node\\Expr\\ArrowFunction' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php', | ||||
|         'PhpParser\\Node\\Expr\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php', | ||||
|         'PhpParser\\Node\\Expr\\AssignRef' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\BooleanAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\BooleanOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Equal' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Greater' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\GreaterOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Identical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\LogicalAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\LogicalOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\LogicalXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\NotEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\NotIdentical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Smaller' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\SmallerOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php', | ||||
|         'PhpParser\\Node\\Expr\\BinaryOp\\Spaceship' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php', | ||||
|         'PhpParser\\Node\\Expr\\BitwiseNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php', | ||||
|         'PhpParser\\Node\\Expr\\BooleanNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php', | ||||
|         'PhpParser\\Node\\Expr\\CallLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/CallLike.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Bool_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Double' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Object_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php', | ||||
|         'PhpParser\\Node\\Expr\\Cast\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php', | ||||
|         'PhpParser\\Node\\Expr\\ClassConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\Clone_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php', | ||||
|         'PhpParser\\Node\\Expr\\Closure' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php', | ||||
|         'PhpParser\\Node\\Expr\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php', | ||||
|         'PhpParser\\Node\\Expr\\ConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\Empty_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php', | ||||
|         'PhpParser\\Node\\Expr\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php', | ||||
|         'PhpParser\\Node\\Expr\\ErrorSuppress' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php', | ||||
|         'PhpParser\\Node\\Expr\\Eval_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php', | ||||
|         'PhpParser\\Node\\Expr\\Exit_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php', | ||||
|         'PhpParser\\Node\\Expr\\FuncCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php', | ||||
|         'PhpParser\\Node\\Expr\\Include_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php', | ||||
|         'PhpParser\\Node\\Expr\\Instanceof_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php', | ||||
|         'PhpParser\\Node\\Expr\\Isset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php', | ||||
|         'PhpParser\\Node\\Expr\\List_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php', | ||||
|         'PhpParser\\Node\\Expr\\Match_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Match_.php', | ||||
|         'PhpParser\\Node\\Expr\\MethodCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php', | ||||
|         'PhpParser\\Node\\Expr\\New_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php', | ||||
|         'PhpParser\\Node\\Expr\\NullsafeMethodCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafeMethodCall.php', | ||||
|         'PhpParser\\Node\\Expr\\NullsafePropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/NullsafePropertyFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\PostDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php', | ||||
|         'PhpParser\\Node\\Expr\\PostInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php', | ||||
|         'PhpParser\\Node\\Expr\\PreDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php', | ||||
|         'PhpParser\\Node\\Expr\\PreInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php', | ||||
|         'PhpParser\\Node\\Expr\\Print_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php', | ||||
|         'PhpParser\\Node\\Expr\\PropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\ShellExec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php', | ||||
|         'PhpParser\\Node\\Expr\\StaticCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php', | ||||
|         'PhpParser\\Node\\Expr\\StaticPropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php', | ||||
|         'PhpParser\\Node\\Expr\\Ternary' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php', | ||||
|         'PhpParser\\Node\\Expr\\Throw_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Throw_.php', | ||||
|         'PhpParser\\Node\\Expr\\UnaryMinus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php', | ||||
|         'PhpParser\\Node\\Expr\\UnaryPlus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php', | ||||
|         'PhpParser\\Node\\Expr\\Variable' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php', | ||||
|         'PhpParser\\Node\\Expr\\YieldFrom' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php', | ||||
|         'PhpParser\\Node\\Expr\\Yield_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php', | ||||
|         'PhpParser\\Node\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php', | ||||
|         'PhpParser\\Node\\Identifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php', | ||||
|         'PhpParser\\Node\\InterpolatedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/InterpolatedStringPart.php', | ||||
|         'PhpParser\\Node\\IntersectionType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/IntersectionType.php', | ||||
|         'PhpParser\\Node\\MatchArm' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/MatchArm.php', | ||||
|         'PhpParser\\Node\\Name' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name.php', | ||||
|         'PhpParser\\Node\\Name\\FullyQualified' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php', | ||||
|         'PhpParser\\Node\\Name\\Relative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php', | ||||
|         'PhpParser\\Node\\NullableType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php', | ||||
|         'PhpParser\\Node\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Param.php', | ||||
|         'PhpParser\\Node\\PropertyHook' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/PropertyHook.php', | ||||
|         'PhpParser\\Node\\PropertyItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/PropertyItem.php', | ||||
|         'PhpParser\\Node\\Scalar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php', | ||||
|         'PhpParser\\Node\\Scalar\\DNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php', | ||||
|         'PhpParser\\Node\\Scalar\\Encapsed' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php', | ||||
|         'PhpParser\\Node\\Scalar\\EncapsedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php', | ||||
|         'PhpParser\\Node\\Scalar\\Float_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Float_.php', | ||||
|         'PhpParser\\Node\\Scalar\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Int_.php', | ||||
|         'PhpParser\\Node\\Scalar\\InterpolatedString' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/InterpolatedString.php', | ||||
|         'PhpParser\\Node\\Scalar\\LNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Dir' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\File' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Line' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Property.php', | ||||
|         'PhpParser\\Node\\Scalar\\MagicConst\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php', | ||||
|         'PhpParser\\Node\\Scalar\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php', | ||||
|         'PhpParser\\Node\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/StaticVar.php', | ||||
|         'PhpParser\\Node\\Stmt' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php', | ||||
|         'PhpParser\\Node\\Stmt\\Block' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Block.php', | ||||
|         'PhpParser\\Node\\Stmt\\Break_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Case_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Catch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php', | ||||
|         'PhpParser\\Node\\Stmt\\ClassConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php', | ||||
|         'PhpParser\\Node\\Stmt\\ClassLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php', | ||||
|         'PhpParser\\Node\\Stmt\\ClassMethod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php', | ||||
|         'PhpParser\\Node\\Stmt\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Continue_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php', | ||||
|         'PhpParser\\Node\\Stmt\\DeclareDeclare' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php', | ||||
|         'PhpParser\\Node\\Stmt\\Declare_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Do_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Echo_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php', | ||||
|         'PhpParser\\Node\\Stmt\\ElseIf_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Else_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php', | ||||
|         'PhpParser\\Node\\Stmt\\EnumCase' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/EnumCase.php', | ||||
|         'PhpParser\\Node\\Stmt\\Enum_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Enum_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Expression' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php', | ||||
|         'PhpParser\\Node\\Stmt\\Finally_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php', | ||||
|         'PhpParser\\Node\\Stmt\\For_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Foreach_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Global_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Goto_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php', | ||||
|         'PhpParser\\Node\\Stmt\\GroupUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php', | ||||
|         'PhpParser\\Node\\Stmt\\HaltCompiler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php', | ||||
|         'PhpParser\\Node\\Stmt\\If_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php', | ||||
|         'PhpParser\\Node\\Stmt\\InlineHTML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php', | ||||
|         'PhpParser\\Node\\Stmt\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Label' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php', | ||||
|         'PhpParser\\Node\\Stmt\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Nop' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php', | ||||
|         'PhpParser\\Node\\Stmt\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php', | ||||
|         'PhpParser\\Node\\Stmt\\PropertyProperty' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php', | ||||
|         'PhpParser\\Node\\Stmt\\Return_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php', | ||||
|         'PhpParser\\Node\\Stmt\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php', | ||||
|         'PhpParser\\Node\\Stmt\\Static_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php', | ||||
|         'PhpParser\\Node\\Stmt\\Switch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php', | ||||
|         'PhpParser\\Node\\Stmt\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php', | ||||
|         'PhpParser\\Node\\Stmt\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php', | ||||
|         'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Alias' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php', | ||||
|         'PhpParser\\Node\\Stmt\\TraitUseAdaptation\\Precedence' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php', | ||||
|         'PhpParser\\Node\\Stmt\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php', | ||||
|         'PhpParser\\Node\\Stmt\\TryCatch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php', | ||||
|         'PhpParser\\Node\\Stmt\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php', | ||||
|         'PhpParser\\Node\\Stmt\\UseUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php', | ||||
|         'PhpParser\\Node\\Stmt\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php', | ||||
|         'PhpParser\\Node\\Stmt\\While_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php', | ||||
|         'PhpParser\\Node\\UnionType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/UnionType.php', | ||||
|         'PhpParser\\Node\\UseItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/UseItem.php', | ||||
|         'PhpParser\\Node\\VarLikeIdentifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php', | ||||
|         'PhpParser\\Node\\VariadicPlaceholder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VariadicPlaceholder.php', | ||||
|         'PhpParser\\Parser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser.php', | ||||
|         'PhpParser\\ParserAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php', | ||||
|         'PhpParser\\ParserFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserFactory.php', | ||||
|         'PhpParser\\Parser\\Php7' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php', | ||||
|         'PhpParser\\Parser\\Php8' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php8.php', | ||||
|         'PhpParser\\PhpVersion' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PhpVersion.php', | ||||
|         'PhpParser\\PrettyPrinter' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter.php', | ||||
|         'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', | ||||
|         'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', | ||||
|         'PhpParser\\Token' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Token.php', | ||||
|         'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php', | ||||
|         'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php', | ||||
|         'SebastianBergmann\\CliParser\\OptionDoesNotAllowArgumentException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/OptionDoesNotAllowArgumentException.php', | ||||
| @@ -1361,6 +1093,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Data\\ProcessedCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/ProcessedCodeCoverageData.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Data\\RawCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Data/RawCodeCoverageData.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php', | ||||
| @@ -1370,7 +1103,6 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\XdebugDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/XdebugDriver.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotAvailableException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\XdebugNotEnabledException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugNotEnabledException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Driver\\XdebugVersionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XdebugVersionNotSupportedException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\FileCouldNotBeWrittenException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/FileCouldNotBeWrittenException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', | ||||
| @@ -1415,36 +1147,12 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Class_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Class_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Function_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Function_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Interface_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Interface_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\LinesOfCode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/LinesOfCode.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Method.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Trait_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Trait_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Visibility' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Value/Visibility.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Class_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Class_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatExtendClass' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ClassesThatExtendClass.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\ClassesThatImplementInterface' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ClassesThatImplementInterface.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Function_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Function_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\InvalidCodeCoverageTargetException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidCodeCoverageTargetException.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\MapBuilder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/MapBuilder.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Mapper' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Mapper.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Method.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Namespace_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Namespace_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Target' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Target.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollection' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollection.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionIterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollectionIterator.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\TargetCollectionValidator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/TargetCollectionValidator.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\Trait_' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/Trait_.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationFailure' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationFailure.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationResult' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationResult.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\Target\\ValidationSuccess' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Target/ValidationSuccess.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Known' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Known.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Large' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Large.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Test\\TestSize\\Medium' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/TestSize/Medium.php', | ||||
| @@ -1462,6 +1170,23 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Percentage.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', | ||||
|         'SebastianBergmann\\CodeCoverage\\XmlException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XmlException.php', | ||||
|         'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', | ||||
|         'SebastianBergmann\\CodeUnit\\ClassMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassMethodUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\ClassUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/ClassUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\CodeUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\CodeUnitCollection' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollection.php', | ||||
|         'SebastianBergmann\\CodeUnit\\CodeUnitCollectionIterator' => __DIR__ . '/..' . '/sebastian/code-unit/src/CodeUnitCollectionIterator.php', | ||||
|         'SebastianBergmann\\CodeUnit\\Exception' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/Exception.php', | ||||
|         'SebastianBergmann\\CodeUnit\\FileUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FileUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\FunctionUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/FunctionUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\InterfaceMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceMethodUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\InterfaceUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/InterfaceUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\InvalidCodeUnitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/InvalidCodeUnitException.php', | ||||
|         'SebastianBergmann\\CodeUnit\\Mapper' => __DIR__ . '/..' . '/sebastian/code-unit/src/Mapper.php', | ||||
|         'SebastianBergmann\\CodeUnit\\NoTraitException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/NoTraitException.php', | ||||
|         'SebastianBergmann\\CodeUnit\\ReflectionException' => __DIR__ . '/..' . '/sebastian/code-unit/src/exceptions/ReflectionException.php', | ||||
|         'SebastianBergmann\\CodeUnit\\TraitMethodUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitMethodUnit.php', | ||||
|         'SebastianBergmann\\CodeUnit\\TraitUnit' => __DIR__ . '/..' . '/sebastian/code-unit/src/TraitUnit.php', | ||||
|         'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', | ||||
|         'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', | ||||
|         'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', | ||||
| @@ -1526,6 +1251,7 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'SebastianBergmann\\LinesOfCode\\IllogicalValuesException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/IllogicalValuesException.php', | ||||
|         'SebastianBergmann\\LinesOfCode\\LineCountingVisitor' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LineCountingVisitor.php', | ||||
|         'SebastianBergmann\\LinesOfCode\\LinesOfCode' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/LinesOfCode.php', | ||||
|         'SebastianBergmann\\LinesOfCode\\NegativeValueException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/NegativeValueException.php', | ||||
|         'SebastianBergmann\\LinesOfCode\\RuntimeException' => __DIR__ . '/..' . '/sebastian/lines-of-code/src/Exception/RuntimeException.php', | ||||
|         'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', | ||||
|         'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', | ||||
| @@ -1570,16 +1296,6 @@ class ComposerStaticInitc00e5b601adae61bbbc3f6be4864ef55 | ||||
|         'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', | ||||
|         'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', | ||||
|         'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', | ||||
|         'goodboyalex\\php_components_pack\\classes\\ActionState' => __DIR__ . '/../..' . '/sources/classes/ActionState.php', | ||||
|         'goodboyalex\\php_components_pack\\classes\\ClassMapper' => __DIR__ . '/../..' . '/sources/classes/ClassMapper.php', | ||||
|         'goodboyalex\\php_components_pack\\enums\\MessageType' => __DIR__ . '/../..' . '/sources/enums/MessageType.php', | ||||
|         'goodboyalex\\php_components_pack\\extensions\\ArrayExtension' => __DIR__ . '/../..' . '/sources/extensions/ArrayExtension.php', | ||||
|         'goodboyalex\\php_components_pack\\extensions\\GUIDExtension' => __DIR__ . '/../..' . '/sources/extensions/GUIDExtension.php', | ||||
|         'goodboyalex\\php_components_pack\\extensions\\StringExtension' => __DIR__ . '/../..' . '/sources/extensions/StringExtension.php', | ||||
|         'goodboyalex\\php_components_pack\\interfaces\\ISerializable' => __DIR__ . '/../..' . '/sources/interfaces/ISerializable.php', | ||||
|         'goodboyalex\\php_components_pack\\models\\ActionStateMessageModel' => __DIR__ . '/../..' . '/sources/models/ActionStateMessageModel.php', | ||||
|         'goodboyalex\\php_components_pack\\tests\\GUIDExtensionTest' => __DIR__ . '/../..' . '/tests/GUIDExtensionTest.php', | ||||
|         'goodboyalex\\php_components_pack\\traits\\EnumExtensionsTrait' => __DIR__ . '/../..' . '/sources/traits/EnumExtensionsTrait.php', | ||||
|         'staabm\\SideEffectsDetector\\SideEffect' => __DIR__ . '/..' . '/staabm/side-effects-detector/lib/SideEffect.php', | ||||
|         'staabm\\SideEffectsDetector\\SideEffectsDetector' => __DIR__ . '/..' . '/staabm/side-effects-detector/lib/SideEffectsDetector.php', | ||||
|     ); | ||||
|   | ||||
							
								
								
									
										601
									
								
								vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										601
									
								
								vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										224
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										224
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|         'name' => 'goodboyalex/php_components_pack', | ||||
|         'pretty_version' => 'dev-master', | ||||
|         'version' => 'dev-master', | ||||
|         'reference' => 'f1a79d66ec29418af66448e6eca584eddfe31d4d', | ||||
|         'reference' => '4bcb4c60dd4219bbb7ff6c9887884541010bcdbc', | ||||
|         'type' => 'library', | ||||
|         'install_path' => __DIR__ . '/../../', | ||||
|         'aliases' => array(), | ||||
| @@ -13,16 +13,16 @@ | ||||
|         'goodboyalex/php_components_pack' => array( | ||||
|             'pretty_version' => 'dev-master', | ||||
|             'version' => 'dev-master', | ||||
|             'reference' => 'f1a79d66ec29418af66448e6eca584eddfe31d4d', | ||||
|             'reference' => '4bcb4c60dd4219bbb7ff6c9887884541010bcdbc', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../../', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => false, | ||||
|         ), | ||||
|         'myclabs/deep-copy' => array( | ||||
|             'pretty_version' => '1.x-dev', | ||||
|             'version' => '1.9999999.9999999.9999999-dev', | ||||
|             'reference' => '4764e040f8743e92b86c36f488f32d0265dd1dae', | ||||
|             'pretty_version' => '1.12.1', | ||||
|             'version' => '1.12.1.0', | ||||
|             'reference' => '123267b2c49fbf30d78a7b2d333f6be754b94845', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../myclabs/deep-copy', | ||||
|             'aliases' => array(), | ||||
| @@ -38,14 +38,12 @@ | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phar-io/manifest' => array( | ||||
|             'pretty_version' => 'dev-master', | ||||
|             'version' => 'dev-master', | ||||
|             'pretty_version' => '2.0.4', | ||||
|             'version' => '2.0.4.0', | ||||
|             'reference' => '54750ef60c58e43759730615a392c31c80e23176', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phar-io/manifest', | ||||
|             'aliases' => array( | ||||
|                 0 => '2.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phar-io/version' => array( | ||||
| @@ -58,212 +56,192 @@ | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/php-code-coverage' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '30b614244b02907cf0b2edc559fd5e24bd05ea57', | ||||
|             'pretty_version' => '11.0.8', | ||||
|             'version' => '11.0.8.0', | ||||
|             'reference' => '418c59fd080954f8c4aa5631d9502ecda2387118', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/php-code-coverage', | ||||
|             'aliases' => array( | ||||
|                 0 => '12.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/php-file-iterator' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'a1339a60b2206324e440c4a3806bbd873fda0860', | ||||
|             'pretty_version' => '5.1.0', | ||||
|             'version' => '5.1.0.0', | ||||
|             'reference' => '118cfaaa8bc5aef3287bf315b6060b1174754af6', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/php-file-iterator', | ||||
|             'aliases' => array( | ||||
|                 0 => '6.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/php-invoker' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'a79e641e661a20d3b8c264b0b3b9eb0d98f98506', | ||||
|             'pretty_version' => '5.0.1', | ||||
|             'version' => '5.0.1.0', | ||||
|             'reference' => 'c1ca3814734c07492b3d4c5f794f4b0995333da2', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/php-invoker', | ||||
|             'aliases' => array( | ||||
|                 0 => '6.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/php-text-template' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '0199874fd3f2ae19aa9813bdfcb68e67671eee64', | ||||
|             'pretty_version' => '4.0.1', | ||||
|             'version' => '4.0.1.0', | ||||
|             'reference' => '3e0404dc6b300e6bf56415467ebcb3fe4f33e964', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/php-text-template', | ||||
|             'aliases' => array( | ||||
|                 0 => '5.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/php-timer' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'aa0f95babbd87f096f1c20364204f195dd4b4608', | ||||
|             'pretty_version' => '7.0.1', | ||||
|             'version' => '7.0.1.0', | ||||
|             'reference' => '3b415def83fbcb41f991d9ebf16ae4ad8b7837b3', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/php-timer', | ||||
|             'aliases' => array( | ||||
|                 0 => '8.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'phpunit/phpunit' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '9f2ebaf18f7741a5ee587f80a42632edaa42d424', | ||||
|             'pretty_version' => '11.5.6', | ||||
|             'version' => '11.5.6.0', | ||||
|             'reference' => '3c3ae14c90f244cdda95028c3e469028e8d1c02c', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../phpunit/phpunit', | ||||
|             'aliases' => array( | ||||
|                 0 => '12.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/cli-parser' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '7f79d38ab02a0cb4089f31207ca11b74f49c7848', | ||||
|             'pretty_version' => '3.0.2', | ||||
|             'version' => '3.0.2.0', | ||||
|             'reference' => '15c5dd40dc4f38794d383bb95465193f5e0ae180', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/cli-parser', | ||||
|             'aliases' => array( | ||||
|                 0 => '4.0.x-dev', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/code-unit' => array( | ||||
|             'pretty_version' => '3.0.2', | ||||
|             'version' => '3.0.2.0', | ||||
|             'reference' => 'ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/code-unit', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/code-unit-reverse-lookup' => array( | ||||
|             'pretty_version' => '4.0.1', | ||||
|             'version' => '4.0.1.0', | ||||
|             'reference' => '183a9b2632194febd219bb9246eee421dad8d45e', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/comparator' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '07f683f544931bc816c47faf894e387f2216a1e9', | ||||
|             'pretty_version' => '6.3.0', | ||||
|             'version' => '6.3.0.0', | ||||
|             'reference' => 'd4e47a769525c4dd38cea90e5dcd435ddbbc7115', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/comparator', | ||||
|             'aliases' => array( | ||||
|                 0 => '7.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/complexity' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'eec688b04904c5ecfa3b94f59bc60485209805a9', | ||||
|             'pretty_version' => '4.0.1', | ||||
|             'version' => '4.0.1.0', | ||||
|             'reference' => 'ee41d384ab1906c68852636b6de493846e13e5a0', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/complexity', | ||||
|             'aliases' => array( | ||||
|                 0 => '5.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/diff' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '87a9594e6994ba8ee9010836903305a64c895083', | ||||
|             'pretty_version' => '6.0.2', | ||||
|             'version' => '6.0.2.0', | ||||
|             'reference' => 'b4ccd857127db5d41a5b676f24b51371d76d8544', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/diff', | ||||
|             'aliases' => array( | ||||
|                 0 => '7.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/environment' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '92b1a897b49e191a8fbca823d75bc0e157ff7cdb', | ||||
|             'pretty_version' => '7.2.0', | ||||
|             'version' => '7.2.0.0', | ||||
|             'reference' => '855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/environment', | ||||
|             'aliases' => array( | ||||
|                 0 => '8.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/exporter' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '17e38c7a602c690c6f097b6aeaf47d0771ace9ca', | ||||
|             'pretty_version' => '6.3.0', | ||||
|             'version' => '6.3.0.0', | ||||
|             'reference' => '3473f61172093b2da7de1fb5782e1f24cc036dc3', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/exporter', | ||||
|             'aliases' => array( | ||||
|                 0 => '7.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/global-state' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '8a089e5a2a118a6725b603a47be1d1a9da1b9a68', | ||||
|             'pretty_version' => '7.0.2', | ||||
|             'version' => '7.0.2.0', | ||||
|             'reference' => '3be331570a721f9a4b5917f4209773de17f747d7', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/global-state', | ||||
|             'aliases' => array( | ||||
|                 0 => '8.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/lines-of-code' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'fe8070ab1160c447839048ab240c07c448caa2b2', | ||||
|             'pretty_version' => '3.0.1', | ||||
|             'version' => '3.0.1.0', | ||||
|             'reference' => 'd36ad0d782e5756913e42ad87cb2890f4ffe467a', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/lines-of-code', | ||||
|             'aliases' => array( | ||||
|                 0 => '4.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/object-enumerator' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '250d806a14baca8c4b37823426277dbcb8d4440d', | ||||
|             'pretty_version' => '6.0.1', | ||||
|             'version' => '6.0.1.0', | ||||
|             'reference' => 'f5b498e631a74204185071eb41f33f38d64608aa', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/object-enumerator', | ||||
|             'aliases' => array( | ||||
|                 0 => '7.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/object-reflector' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '7dddd66b56ba05cb474de46b2b623e92b42bff3a', | ||||
|             'pretty_version' => '4.0.1', | ||||
|             'version' => '4.0.1.0', | ||||
|             'reference' => '6e1a43b411b2ad34146dee7524cb13a068bb35f9', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/object-reflector', | ||||
|             'aliases' => array( | ||||
|                 0 => '5.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/recursion-context' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'c9442e27dc9965ad453397725830d8ecb5497410', | ||||
|             'pretty_version' => '6.0.2', | ||||
|             'version' => '6.0.2.0', | ||||
|             'reference' => '694d156164372abbd149a4b85ccda2e4670c0e16', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/recursion-context', | ||||
|             'aliases' => array( | ||||
|                 0 => '7.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/type' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => 'b07de32ccc63961cfcf87c4531816388dbaf264f', | ||||
|             'pretty_version' => '5.1.0', | ||||
|             'version' => '5.1.0.0', | ||||
|             'reference' => '461b9c5da241511a2a0e8f240814fb23ce5c0aac', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/type', | ||||
|             'aliases' => array( | ||||
|                 0 => '6.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'sebastian/version' => array( | ||||
|             'pretty_version' => 'dev-main', | ||||
|             'version' => 'dev-main', | ||||
|             'reference' => '3e8786f0e004140c3be066577af51e7ea0446e54', | ||||
|             'pretty_version' => '5.0.2', | ||||
|             'version' => '5.0.2.0', | ||||
|             'reference' => 'c687e3387b99f5b03b6caa64c74b63e2936ff874', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../sebastian/version', | ||||
|             'aliases' => array( | ||||
|                 0 => '6.0.x-dev', | ||||
|             ), | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => true, | ||||
|         ), | ||||
|         'staabm/side-effects-detector' => array( | ||||
|   | ||||
							
								
								
									
										74
									
								
								vendor/phpunit/php-code-coverage/ChangeLog-11.0.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								vendor/phpunit/php-code-coverage/ChangeLog-11.0.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| # ChangeLog | ||||
|  | ||||
| All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. | ||||
|  | ||||
| ## [11.0.8] - 2024-12-11 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * [#1054](https://github.com/sebastianbergmann/php-code-coverage/pull/1054): Use click event for toggling "tests covering this line" popover in HTML report | ||||
|  | ||||
| ## [11.0.7] - 2024-10-09 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * [#1037](https://github.com/sebastianbergmann/php-code-coverage/pull/1037): Upgrade Bootstrap to version 5.3.3 for HTML report | ||||
| * [#1046](https://github.com/sebastianbergmann/php-code-coverage/pull/1046): CSS fixes for HTML report | ||||
|  | ||||
| ### Deprecated | ||||
|  | ||||
| * The `SebastianBergmann\CodeCoverage\Filter::includeUncoveredFiles()`, `SebastianBergmann\CodeCoverage\Filter::excludeUncoveredFiles()`, and `SebastianBergmann\CodeCoverage\Filter::excludeFile()` methods have been deprecated | ||||
|  | ||||
| ## [11.0.6] - 2024-08-22 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * Updated dependencies (so that users that install using Composer's `--prefer-lowest` CLI option also get recent versions) | ||||
|  | ||||
| ## [11.0.5] - 2024-07-03 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * This project now uses PHPStan instead of Psalm for static analysis | ||||
|  | ||||
| ## [11.0.4] - 2024-06-29 | ||||
|  | ||||
| ### Fixed | ||||
|  | ||||
| * [#967](https://github.com/sebastianbergmann/php-code-coverage/issues/967): Identification of executable lines for `match` expressions does not work correctly | ||||
|  | ||||
| ## [11.0.3] - 2024-03-12 | ||||
|  | ||||
| ### Fixed | ||||
|  | ||||
| * [#1033](https://github.com/sebastianbergmann/php-code-coverage/issues/1033): `@codeCoverageIgnore` annotation does not work on `enum` | ||||
|  | ||||
| ## [11.0.2] - 2024-03-09 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * [#1032](https://github.com/sebastianbergmann/php-code-coverage/pull/1032): Pad lines in code coverage report only when colors are shown | ||||
|  | ||||
| ## [11.0.1] - 2024-03-02 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * Do not use implicitly nullable parameters | ||||
|  | ||||
| ## [11.0.0] - 2024-02-02 | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * The `SebastianBergmann\CodeCoverage\Filter::includeDirectory()`, `SebastianBergmann\CodeCoverage\Filter::excludeDirectory()`, and `SebastianBergmann\CodeCoverage\Filter::excludeFile()` methods have been removed | ||||
| * This component now requires PHP-Parser 5 | ||||
| * This component is no longer supported on PHP 8.1 | ||||
|  | ||||
| [11.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.7...11.0.8 | ||||
| [11.0.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.6...11.0.7 | ||||
| [11.0.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.5...11.0.6 | ||||
| [11.0.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.4...11.0.5 | ||||
| [11.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.3...11.0.4 | ||||
| [11.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.2...11.0.3 | ||||
| [11.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.1...11.0.2 | ||||
| [11.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0.0...11.0.1 | ||||
| [11.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/10.1...11.0.0 | ||||
| @@ -1,19 +0,0 @@ | ||||
| # ChangeLog | ||||
|  | ||||
| All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. | ||||
|  | ||||
| ## [12.0.0] - 2025-02-07 | ||||
|  | ||||
| ### Changed | ||||
|  | ||||
| * `CodeCoverage::stop()` and `CodeCoverage::append()` now expect arguments of type `TargetCollection` instead of `array` to configure code coverage targets | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * Methods `CodeCoverage::includeUncoveredFiles()` and `CodeCoverage::excludeUncoveredFiles()` | ||||
| * Method `CodeCoverage::detectsDeadCode()` | ||||
| * Optional argument `$linesToBeUsed` of `CodeCoverage::stop()` and `CodeCoverage::append()` methods | ||||
| * This component is no longer supported on PHP 8.2 | ||||
| * This component no longer supports Xdebug versions before Xdebug 3.1 | ||||
|  | ||||
| [12.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/11.0...main | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-code-coverage/LICENSE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-code-coverage/LICENSE
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| BSD 3-Clause License | ||||
|  | ||||
| Copyright (c) 2009-2025, Sebastian Bergmann | ||||
| Copyright (c) 2009-2024, Sebastian Bergmann | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
|   | ||||
							
								
								
									
										24
									
								
								vendor/phpunit/php-code-coverage/composer.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/phpunit/php-code-coverage/composer.json
									
									
									
									
										vendored
									
									
								
							| @@ -22,29 +22,29 @@ | ||||
|     }, | ||||
|     "config": { | ||||
|         "platform": { | ||||
|             "php": "8.3.0" | ||||
|             "php": "8.2.0" | ||||
|         }, | ||||
|         "optimize-autoloader": true, | ||||
|         "sort-packages": true | ||||
|     }, | ||||
|     "minimum-stability": "dev", | ||||
|     "prefer-stable": true, | ||||
|     "require": { | ||||
|         "php": ">=8.3", | ||||
|         "php": ">=8.2", | ||||
|         "ext-dom": "*", | ||||
|         "ext-libxml": "*", | ||||
|         "ext-xmlwriter": "*", | ||||
|         "nikic/php-parser": "^5.4.0", | ||||
|         "phpunit/php-file-iterator": "^6.0-dev", | ||||
|         "phpunit/php-text-template": "^5.0-dev", | ||||
|         "sebastian/complexity": "^5.0-dev", | ||||
|         "sebastian/environment": "^8.0-dev", | ||||
|         "sebastian/lines-of-code": "^4.0-dev", | ||||
|         "sebastian/version": "^6.0-dev", | ||||
|         "nikic/php-parser": "^5.3.1", | ||||
|         "phpunit/php-file-iterator": "^5.1.0", | ||||
|         "phpunit/php-text-template": "^4.0.1", | ||||
|         "sebastian/code-unit-reverse-lookup": "^4.0.1", | ||||
|         "sebastian/complexity": "^4.0.1", | ||||
|         "sebastian/environment": "^7.2.0", | ||||
|         "sebastian/lines-of-code": "^3.0.1", | ||||
|         "sebastian/version": "^5.0.2", | ||||
|         "theseer/tokenizer": "^1.2.3" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "phpunit/phpunit": "^12.0-dev" | ||||
|         "phpunit/phpunit": "^11.5.0" | ||||
|     }, | ||||
|     "suggest": { | ||||
|         "ext-pcov": "PHP extension that provides line coverage", | ||||
| @@ -62,7 +62,7 @@ | ||||
|     }, | ||||
|     "extra": { | ||||
|         "branch-alias": { | ||||
|             "dev-main": "12.0.x-dev" | ||||
|             "dev-main": "11.0.x-dev" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -14,9 +14,11 @@ use function array_diff_key; | ||||
| use function array_flip; | ||||
| use function array_keys; | ||||
| use function array_merge; | ||||
| use function array_merge_recursive; | ||||
| use function array_unique; | ||||
| use function count; | ||||
| use function explode; | ||||
| use function is_array; | ||||
| use function is_file; | ||||
| use function sort; | ||||
| use ReflectionClass; | ||||
| @@ -28,33 +30,37 @@ use SebastianBergmann\CodeCoverage\Node\Directory; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingFileAnalyser; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingFileAnalyser; | ||||
| use SebastianBergmann\CodeCoverage\Test\Target\MapBuilder; | ||||
| use SebastianBergmann\CodeCoverage\Test\Target\Mapper; | ||||
| use SebastianBergmann\CodeCoverage\Test\Target\TargetCollection; | ||||
| use SebastianBergmann\CodeCoverage\Test\Target\TargetCollectionValidator; | ||||
| use SebastianBergmann\CodeCoverage\Test\Target\ValidationResult; | ||||
| use SebastianBergmann\CodeCoverage\Test\TestSize\TestSize; | ||||
| use SebastianBergmann\CodeCoverage\Test\TestStatus\TestStatus; | ||||
| use SebastianBergmann\CodeUnitReverseLookup\Wizard; | ||||
|  | ||||
| /** | ||||
|  * Provides collection functionality for PHP code coverage information. | ||||
|  * | ||||
|  * @phpstan-type TestType array{size: string, status: string} | ||||
|  * @phpstan-type TargetedLines array<non-empty-string, list<positive-int>> | ||||
|  * @phpstan-type TestType = array{ | ||||
|  *     size: string, | ||||
|  *     status: string, | ||||
|  * } | ||||
|  */ | ||||
| final class CodeCoverage | ||||
| { | ||||
|     private const string UNCOVERED_FILES = 'UNCOVERED_FILES'; | ||||
|     private const UNCOVERED_FILES = 'UNCOVERED_FILES'; | ||||
|     private readonly Driver $driver; | ||||
|     private readonly Filter $filter; | ||||
|     private ?Mapper $targetMapper                    = null; | ||||
|     private readonly Wizard $wizard; | ||||
|     private bool $checkForUnintentionallyCoveredCode = false; | ||||
|     private bool $includeUncoveredFiles              = true; | ||||
|     private bool $ignoreDeprecatedCode               = false; | ||||
|     private ?string $currentId                       = null; | ||||
|     private ?TestSize $currentSize                   = null; | ||||
|     private ProcessedCodeCoverageData $data; | ||||
|     private bool $useAnnotationsForIgnoringCode = true; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string,list<int>> | ||||
|      */ | ||||
|     private array $linesToBeIgnored = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, TestType> | ||||
|      */ | ||||
| @@ -73,6 +79,7 @@ final class CodeCoverage | ||||
|         $this->driver = $driver; | ||||
|         $this->filter = $filter; | ||||
|         $this->data   = new ProcessedCodeCoverageData; | ||||
|         $this->wizard = new Wizard; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -121,8 +128,10 @@ final class CodeCoverage | ||||
|     public function getData(bool $raw = false): ProcessedCodeCoverageData | ||||
|     { | ||||
|         if (!$raw) { | ||||
|             if ($this->includeUncoveredFiles) { | ||||
|                 $this->addUncoveredFilesFromFilter(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $this->data; | ||||
|     } | ||||
| @@ -165,11 +174,19 @@ final class CodeCoverage | ||||
|         $this->cachedReport = null; | ||||
|     } | ||||
|  | ||||
|     public function stop(bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null): RawCodeCoverageData | ||||
|     /** | ||||
|      * @param array<string,list<int>> $linesToBeIgnored | ||||
|      */ | ||||
|     public function stop(bool $append = true, ?TestStatus $status = null, array|false $linesToBeCovered = [], array $linesToBeUsed = [], array $linesToBeIgnored = []): RawCodeCoverageData | ||||
|     { | ||||
|         $data = $this->driver->stop(); | ||||
|  | ||||
|         $this->append($data, null, $append, $status, $covers, $uses); | ||||
|         $this->linesToBeIgnored = array_merge_recursive( | ||||
|             $this->linesToBeIgnored, | ||||
|             $linesToBeIgnored, | ||||
|         ); | ||||
|  | ||||
|         $this->append($data, null, $append, $status, $linesToBeCovered, $linesToBeUsed, $linesToBeIgnored); | ||||
|  | ||||
|         $this->currentId    = null; | ||||
|         $this->currentSize  = null; | ||||
| @@ -179,11 +196,13 @@ final class CodeCoverage | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string,list<int>> $linesToBeIgnored | ||||
|      * | ||||
|      * @throws ReflectionException | ||||
|      * @throws TestIdMissingException | ||||
|      * @throws UnintentionallyCoveredCodeException | ||||
|      */ | ||||
|     public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, null|false|TargetCollection $covers = null, ?TargetCollection $uses = null): void | ||||
|     public function append(RawCodeCoverageData $rawData, ?string $id = null, bool $append = true, ?TestStatus $status = null, array|false $linesToBeCovered = [], array $linesToBeUsed = [], array $linesToBeIgnored = []): void | ||||
|     { | ||||
|         if ($id === null) { | ||||
|             $id = $this->currentId; | ||||
| @@ -193,32 +212,24 @@ final class CodeCoverage | ||||
|             throw new TestIdMissingException; | ||||
|         } | ||||
|  | ||||
|         $this->cachedReport = null; | ||||
|  | ||||
|         if ($status === null) { | ||||
|             $status = TestStatus::unknown(); | ||||
|         } | ||||
|  | ||||
|         if ($covers === null) { | ||||
|             $covers = TargetCollection::fromArray([]); | ||||
|         } | ||||
|  | ||||
|         if ($uses === null) { | ||||
|             $uses = TargetCollection::fromArray([]); | ||||
|         } | ||||
|  | ||||
|         $size = $this->currentSize; | ||||
|  | ||||
|         if ($size === null) { | ||||
|             $size = TestSize::unknown(); | ||||
|         } | ||||
|  | ||||
|         $this->cachedReport = null; | ||||
|  | ||||
|         $this->applyFilter($rawData); | ||||
|  | ||||
|         $this->applyExecutableLinesFilter($rawData); | ||||
|  | ||||
|         if ($this->useAnnotationsForIgnoringCode) { | ||||
|             $this->applyIgnoredLinesFilter($rawData); | ||||
|             $this->applyIgnoredLinesFilter($rawData, $linesToBeIgnored); | ||||
|         } | ||||
|  | ||||
|         $this->data->initializeUnseenData($rawData); | ||||
| @@ -231,17 +242,6 @@ final class CodeCoverage | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $linesToBeCovered = false; | ||||
|         $linesToBeUsed    = []; | ||||
|  | ||||
|         if ($covers !== false) { | ||||
|             $linesToBeCovered = $this->targetMapper()->mapTargets($covers); | ||||
|         } | ||||
|  | ||||
|         if ($linesToBeCovered !== false) { | ||||
|             $linesToBeUsed = $this->targetMapper()->mapTargets($uses); | ||||
|         } | ||||
|  | ||||
|         $this->applyCoversAndUsesFilter( | ||||
|             $rawData, | ||||
|             $linesToBeCovered, | ||||
| @@ -287,6 +287,22 @@ final class CodeCoverage | ||||
|         $this->checkForUnintentionallyCoveredCode = false; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @deprecated | ||||
|      */ | ||||
|     public function includeUncoveredFiles(): void | ||||
|     { | ||||
|         $this->includeUncoveredFiles = true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @deprecated | ||||
|      */ | ||||
|     public function excludeUncoveredFiles(): void | ||||
|     { | ||||
|         $this->includeUncoveredFiles = false; | ||||
|     } | ||||
|  | ||||
|     public function enableAnnotationsForIgnoringCode(): void | ||||
|     { | ||||
|         $this->useAnnotationsForIgnoringCode = true; | ||||
| @@ -362,15 +378,12 @@ final class CodeCoverage | ||||
|         return $this->driver->collectsBranchAndPathCoverage(); | ||||
|     } | ||||
|  | ||||
|     public function validate(TargetCollection $targets): ValidationResult | ||||
|     public function detectsDeadCode(): bool | ||||
|     { | ||||
|         return (new TargetCollectionValidator)->validate($this->targetMapper(), $targets); | ||||
|         return $this->driver->detectsDeadCode(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param false|TargetedLines $linesToBeCovered | ||||
|      * @param TargetedLines       $linesToBeUsed | ||||
|      * | ||||
|      * @throws ReflectionException | ||||
|      * @throws UnintentionallyCoveredCodeException | ||||
|      */ | ||||
| @@ -397,11 +410,13 @@ final class CodeCoverage | ||||
|             $rawData->removeCoverageDataForFile($fileWithNoCoverage); | ||||
|         } | ||||
|  | ||||
|         if (is_array($linesToBeCovered)) { | ||||
|             foreach ($linesToBeCovered as $fileToBeCovered => $includedLines) { | ||||
|                 $rawData->keepLineCoverageDataOnlyForLines($fileToBeCovered, $includedLines); | ||||
|                 $rawData->keepFunctionCoverageDataOnlyForLines($fileToBeCovered, $includedLines); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private function applyFilter(RawCodeCoverageData $data): void | ||||
|     { | ||||
| @@ -437,13 +452,23 @@ final class CodeCoverage | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private function applyIgnoredLinesFilter(RawCodeCoverageData $data): void | ||||
|     /** | ||||
|      * @param array<string,list<int>> $linesToBeIgnored | ||||
|      */ | ||||
|     private function applyIgnoredLinesFilter(RawCodeCoverageData $data, array $linesToBeIgnored): void | ||||
|     { | ||||
|         foreach (array_keys($data->lineCoverage()) as $filename) { | ||||
|             if (!$this->filter->isFile($filename)) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (isset($linesToBeIgnored[$filename])) { | ||||
|                 $data->removeCoverageDataForLines( | ||||
|                     $filename, | ||||
|                     $linesToBeIgnored[$filename], | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
|             $data->removeCoverageDataForLines( | ||||
|                 $filename, | ||||
|                 $this->analyser()->ignoredLinesFor($filename), | ||||
| @@ -469,15 +494,13 @@ final class CodeCoverage | ||||
|                         $this->analyser(), | ||||
|                     ), | ||||
|                     self::UNCOVERED_FILES, | ||||
|                     linesToBeIgnored: $this->linesToBeIgnored, | ||||
|                 ); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param TargetedLines $linesToBeCovered | ||||
|      * @param TargetedLines $linesToBeUsed | ||||
|      * | ||||
|      * @throws ReflectionException | ||||
|      * @throws UnintentionallyCoveredCodeException | ||||
|      */ | ||||
| @@ -493,7 +516,7 @@ final class CodeCoverage | ||||
|         foreach ($data->lineCoverage() as $file => $_data) { | ||||
|             foreach ($_data as $line => $flag) { | ||||
|                 if ($flag === 1 && !isset($allowedLines[$file][$line])) { | ||||
|                     $unintentionallyCoveredUnits[] = $this->targetMapper->lookup($file, $line); | ||||
|                     $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -507,12 +530,6 @@ final class CodeCoverage | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param TargetedLines $linesToBeCovered | ||||
|      * @param TargetedLines $linesToBeUsed | ||||
|      * | ||||
|      * @return TargetedLines | ||||
|      */ | ||||
|     private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed): array | ||||
|     { | ||||
|         $allowedLines = []; | ||||
| @@ -595,19 +612,6 @@ final class CodeCoverage | ||||
|         return $processed; | ||||
|     } | ||||
|  | ||||
|     private function targetMapper(): Mapper | ||||
|     { | ||||
|         if ($this->targetMapper !== null) { | ||||
|             return $this->targetMapper; | ||||
|         } | ||||
|  | ||||
|         $this->targetMapper = new Mapper( | ||||
|             (new MapBuilder)->build($this->filter, $this->analyser()), | ||||
|         ); | ||||
|  | ||||
|         return $this->targetMapper; | ||||
|     } | ||||
|  | ||||
|     private function analyser(): FileAnalyser | ||||
|     { | ||||
|         if ($this->analyser !== null) { | ||||
|   | ||||
| @@ -17,31 +17,13 @@ use function count; | ||||
| use function is_array; | ||||
| use function ksort; | ||||
| use SebastianBergmann\CodeCoverage\Driver\Driver; | ||||
| use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type XdebugFunctionCoverageType from XdebugDriver | ||||
|  * @phpstan-import-type XdebugFunctionCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver | ||||
|  * | ||||
|  * @phpstan-type TestIdType string | ||||
|  * @phpstan-type FunctionCoverageDataType array{ | ||||
|  *      branches: array<int, array{ | ||||
|  *          op_start: int, | ||||
|  *          op_end: int, | ||||
|  *          line_start: int, | ||||
|  *          line_end: int, | ||||
|  *          hit: list<TestIdType>, | ||||
|  *          out: array<int, int>, | ||||
|  *          out_hit: array<int, int>, | ||||
|  *      }>, | ||||
|  *      paths: array<int, array{ | ||||
|  *          path: array<int, int>, | ||||
|  *          hit: list<TestIdType>, | ||||
|  *      }>, | ||||
|  *      hit: list<TestIdType> | ||||
|  *  } | ||||
|  * @phpstan-type FunctionCoverageType array<string, array<string, FunctionCoverageDataType>> | ||||
|  * @phpstan-type TestIdType = string | ||||
|  */ | ||||
| final class ProcessedCodeCoverageData | ||||
| { | ||||
| @@ -58,7 +40,22 @@ final class ProcessedCodeCoverageData | ||||
|      * Maintains base format of raw data (@see https://xdebug.org/docs/code_coverage), but each 'hit' entry is an array | ||||
|      * of testcase ids. | ||||
|      * | ||||
|      * @var FunctionCoverageType | ||||
|      * @var array<string, array<string, array{ | ||||
|      *     branches: array<int, array{ | ||||
|      *         op_start: int, | ||||
|      *         op_end: int, | ||||
|      *         line_start: int, | ||||
|      *         line_end: int, | ||||
|      *         hit: list<TestIdType>, | ||||
|      *         out: array<int, int>, | ||||
|      *         out_hit: array<int, int>, | ||||
|      *     }>, | ||||
|      *     paths: array<int, array{ | ||||
|      *         path: array<int, int>, | ||||
|      *         hit: list<TestIdType>, | ||||
|      *     }>, | ||||
|      *     hit: list<TestIdType> | ||||
|      * }>> | ||||
|      */ | ||||
|     private array $functionCoverage = []; | ||||
|  | ||||
| @@ -219,8 +216,6 @@ final class ProcessedCodeCoverageData | ||||
|      * 4 = the line has been tested | ||||
|      * | ||||
|      * During a merge, a higher number is better. | ||||
|      * | ||||
|      * @return 1|2|3|4 | ||||
|      */ | ||||
|     private function priorityForLine(array $data, int $line): int | ||||
|     { | ||||
| @@ -242,7 +237,7 @@ final class ProcessedCodeCoverageData | ||||
|     /** | ||||
|      * For a function we have never seen before, copy all data over and simply init the 'hit' array. | ||||
|      * | ||||
|      * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData | ||||
|      * @param XdebugFunctionCoverageType $functionData | ||||
|      */ | ||||
|     private function initPreviouslyUnseenFunction(string $file, string $functionName, array $functionData): void | ||||
|     { | ||||
| @@ -262,7 +257,7 @@ final class ProcessedCodeCoverageData | ||||
|      * Techniques such as mocking and where the contents of a file are different vary during tests (e.g. compiling | ||||
|      * containers) mean that the functions inside a file cannot be relied upon to be static. | ||||
|      * | ||||
|      * @param FunctionCoverageDataType|XdebugFunctionCoverageType $functionData | ||||
|      * @param XdebugFunctionCoverageType $functionData | ||||
|      */ | ||||
|     private function initPreviouslySeenFunction(string $file, string $functionName, array $functionData): void | ||||
|     { | ||||
|   | ||||
| @@ -14,7 +14,6 @@ use function array_diff_key; | ||||
| use function array_flip; | ||||
| use function array_intersect; | ||||
| use function array_intersect_key; | ||||
| use function array_map; | ||||
| use function count; | ||||
| use function explode; | ||||
| use function file_get_contents; | ||||
| @@ -26,15 +25,14 @@ use function str_ends_with; | ||||
| use function str_starts_with; | ||||
| use function trim; | ||||
| use SebastianBergmann\CodeCoverage\Driver\Driver; | ||||
| use SebastianBergmann\CodeCoverage\Driver\XdebugDriver; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type XdebugFunctionsCoverageType from XdebugDriver | ||||
|  * @phpstan-import-type XdebugCodeCoverageWithoutPathCoverageType from XdebugDriver | ||||
|  * @phpstan-import-type XdebugCodeCoverageWithPathCoverageType from XdebugDriver | ||||
|  * @phpstan-import-type XdebugFunctionsCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver | ||||
|  * @phpstan-import-type XdebugCodeCoverageWithoutPathCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver | ||||
|  * @phpstan-import-type XdebugCodeCoverageWithPathCoverageType from \SebastianBergmann\CodeCoverage\Driver\XdebugDriver | ||||
|  */ | ||||
| final class RawCodeCoverageData | ||||
| { | ||||
| @@ -88,10 +86,11 @@ final class RawCodeCoverageData | ||||
|  | ||||
|     public static function fromUncoveredFile(string $filename, FileAnalyser $analyser): self | ||||
|     { | ||||
|         $lineCoverage = array_map( | ||||
|             static fn (): int => Driver::LINE_NOT_EXECUTED, | ||||
|             $analyser->executableLinesIn($filename), | ||||
|         ); | ||||
|         $lineCoverage = []; | ||||
|  | ||||
|         foreach ($analyser->executableLinesIn($filename) as $line => $branch) { | ||||
|             $lineCoverage[$line] = Driver::LINE_NOT_EXECUTED; | ||||
|         } | ||||
|  | ||||
|         return new self([$filename => $lineCoverage], []); | ||||
|     } | ||||
| @@ -261,9 +260,6 @@ final class RawCodeCoverageData | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<int> | ||||
|      */ | ||||
|     private function getEmptyLinesForFile(string $filename): array | ||||
|     { | ||||
|         if (!isset(self::$emptyLineCache[$filename])) { | ||||
|   | ||||
| @@ -12,6 +12,7 @@ namespace SebastianBergmann\CodeCoverage\Driver; | ||||
| use function sprintf; | ||||
| use SebastianBergmann\CodeCoverage\BranchAndPathCoverageNotSupportedException; | ||||
| use SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData; | ||||
| use SebastianBergmann\CodeCoverage\DeadCodeDetectionNotSupportedException; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
| @@ -23,36 +24,37 @@ abstract class Driver | ||||
|      * | ||||
|      * @see http://xdebug.org/docs/code_coverage | ||||
|      */ | ||||
|     public const int LINE_NOT_EXECUTABLE = -2; | ||||
|     public const LINE_NOT_EXECUTABLE = -2; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      * | ||||
|      * @see http://xdebug.org/docs/code_coverage | ||||
|      */ | ||||
|     public const int LINE_NOT_EXECUTED = -1; | ||||
|     public const LINE_NOT_EXECUTED = -1; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      * | ||||
|      * @see http://xdebug.org/docs/code_coverage | ||||
|      */ | ||||
|     public const int LINE_EXECUTED = 1; | ||||
|     public const LINE_EXECUTED = 1; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      * | ||||
|      * @see http://xdebug.org/docs/code_coverage | ||||
|      */ | ||||
|     public const int BRANCH_NOT_HIT = 0; | ||||
|     public const BRANCH_NOT_HIT = 0; | ||||
|  | ||||
|     /** | ||||
|      * @var int | ||||
|      * | ||||
|      * @see http://xdebug.org/docs/code_coverage | ||||
|      */ | ||||
|     public const int BRANCH_HIT                = 1; | ||||
|     public const BRANCH_HIT                    = 1; | ||||
|     private bool $collectBranchAndPathCoverage = false; | ||||
|     private bool $detectDeadCode               = false; | ||||
|  | ||||
|     public function canCollectBranchAndPathCoverage(): bool | ||||
|     { | ||||
| @@ -86,6 +88,38 @@ abstract class Driver | ||||
|         $this->collectBranchAndPathCoverage = false; | ||||
|     } | ||||
|  | ||||
|     public function canDetectDeadCode(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function detectsDeadCode(): bool | ||||
|     { | ||||
|         return $this->detectDeadCode; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @throws DeadCodeDetectionNotSupportedException | ||||
|      */ | ||||
|     public function enableDeadCodeDetection(): void | ||||
|     { | ||||
|         if (!$this->canDetectDeadCode()) { | ||||
|             throw new DeadCodeDetectionNotSupportedException( | ||||
|                 sprintf( | ||||
|                     '%s does not support dead code detection', | ||||
|                     $this->nameAndVersion(), | ||||
|                 ), | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         $this->detectDeadCode = true; | ||||
|     } | ||||
|  | ||||
|     public function disableDeadCodeDetection(): void | ||||
|     { | ||||
|         $this->detectDeadCode = false; | ||||
|     } | ||||
|  | ||||
|     abstract public function nameAndVersion(): string; | ||||
|  | ||||
|     abstract public function start(): void; | ||||
|   | ||||
| @@ -38,9 +38,6 @@ final class PcovDriver extends Driver | ||||
|         $this->filter = $filter; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @codeCoverageIgnore | ||||
|      */ | ||||
|     public function start(): void | ||||
|     { | ||||
|         start(); | ||||
| @@ -50,7 +47,6 @@ final class PcovDriver extends Driver | ||||
|     { | ||||
|         stop(); | ||||
|  | ||||
|         // @codeCoverageIgnoreStart | ||||
|         $filesToCollectCoverageFor = waiting(); | ||||
|         $collected                 = []; | ||||
|  | ||||
| @@ -65,7 +61,6 @@ final class PcovDriver extends Driver | ||||
|         } | ||||
|  | ||||
|         return RawCodeCoverageData::fromXdebugWithoutPathCoverage($collected); | ||||
|         // @codeCoverageIgnoreEnd | ||||
|     } | ||||
|  | ||||
|     public function nameAndVersion(): string | ||||
|   | ||||
| @@ -21,7 +21,6 @@ final class Selector | ||||
|      * @throws PcovNotAvailableException | ||||
|      * @throws XdebugNotAvailableException | ||||
|      * @throws XdebugNotEnabledException | ||||
|      * @throws XdebugVersionNotSupportedException | ||||
|      */ | ||||
|     public function forLineCoverage(Filter $filter): Driver | ||||
|     { | ||||
| @@ -32,7 +31,11 @@ final class Selector | ||||
|         } | ||||
|  | ||||
|         if ($runtime->hasXdebug()) { | ||||
|             return new XdebugDriver($filter); | ||||
|             $driver = new XdebugDriver($filter); | ||||
|  | ||||
|             $driver->enableDeadCodeDetection(); | ||||
|  | ||||
|             return $driver; | ||||
|         } | ||||
|  | ||||
|         throw new NoCodeCoverageDriverAvailableException; | ||||
| @@ -42,13 +45,13 @@ final class Selector | ||||
|      * @throws NoCodeCoverageDriverWithPathCoverageSupportAvailableException | ||||
|      * @throws XdebugNotAvailableException | ||||
|      * @throws XdebugNotEnabledException | ||||
|      * @throws XdebugVersionNotSupportedException | ||||
|      */ | ||||
|     public function forLineAndPathCoverage(Filter $filter): Driver | ||||
|     { | ||||
|         if ((new Runtime)->hasXdebug()) { | ||||
|             $driver = new XdebugDriver($filter); | ||||
|  | ||||
|             $driver->enableDeadCodeDetection(); | ||||
|             $driver->enableBranchAndPathCoverage(); | ||||
|  | ||||
|             return $driver; | ||||
|   | ||||
| @@ -14,8 +14,11 @@ use const XDEBUG_CC_DEAD_CODE; | ||||
| use const XDEBUG_CC_UNUSED; | ||||
| use const XDEBUG_FILTER_CODE_COVERAGE; | ||||
| use const XDEBUG_PATH_INCLUDE; | ||||
| use function explode; | ||||
| use function extension_loaded; | ||||
| use function getenv; | ||||
| use function in_array; | ||||
| use function ini_get; | ||||
| use function phpversion; | ||||
| use function version_compare; | ||||
| use function xdebug_get_code_coverage; | ||||
| @@ -31,8 +34,8 @@ use SebastianBergmann\CodeCoverage\Filter; | ||||
|  * | ||||
|  * @see https://xdebug.org/docs/code_coverage#xdebug_get_code_coverage | ||||
|  * | ||||
|  * @phpstan-type XdebugLinesCoverageType array<int, int> | ||||
|  * @phpstan-type XdebugBranchCoverageType array{ | ||||
|  * @phpstan-type XdebugLinesCoverageType = array<int, int> | ||||
|  * @phpstan-type XdebugBranchCoverageType = array{ | ||||
|  *     op_start: int, | ||||
|  *     op_end: int, | ||||
|  *     line_start: int, | ||||
| @@ -41,32 +44,32 @@ use SebastianBergmann\CodeCoverage\Filter; | ||||
|  *     out: array<int, int>, | ||||
|  *     out_hit: array<int, int>, | ||||
|  * } | ||||
|  * @phpstan-type XdebugPathCoverageType array{ | ||||
|  * @phpstan-type XdebugPathCoverageType = array{ | ||||
|  *     path: array<int, int>, | ||||
|  *     hit: int, | ||||
|  * } | ||||
|  * @phpstan-type XdebugFunctionCoverageType array{ | ||||
|  * @phpstan-type XdebugFunctionCoverageType = array{ | ||||
|  *     branches: array<int, XdebugBranchCoverageType>, | ||||
|  *     paths: array<int, XdebugPathCoverageType>, | ||||
|  * } | ||||
|  * @phpstan-type XdebugFunctionsCoverageType array<string, XdebugFunctionCoverageType> | ||||
|  * @phpstan-type XdebugPathAndBranchesCoverageType array{ | ||||
|  * @phpstan-type XdebugFunctionsCoverageType = array<string, XdebugFunctionCoverageType> | ||||
|  * @phpstan-type XdebugPathAndBranchesCoverageType = array{ | ||||
|  *     lines: XdebugLinesCoverageType, | ||||
|  *     functions: XdebugFunctionsCoverageType, | ||||
|  * } | ||||
|  * @phpstan-type XdebugCodeCoverageWithoutPathCoverageType array<string, XdebugLinesCoverageType> | ||||
|  * @phpstan-type XdebugCodeCoverageWithPathCoverageType array<string, XdebugPathAndBranchesCoverageType> | ||||
|  * @phpstan-type XdebugCodeCoverageWithoutPathCoverageType = array<string, XdebugLinesCoverageType> | ||||
|  * @phpstan-type XdebugCodeCoverageWithPathCoverageType = array<string, XdebugPathAndBranchesCoverageType> | ||||
|  */ | ||||
| final class XdebugDriver extends Driver | ||||
| { | ||||
|     /** | ||||
|      * @throws XdebugNotAvailableException | ||||
|      * @throws XdebugNotEnabledException | ||||
|      * @throws XdebugVersionNotSupportedException | ||||
|      */ | ||||
|     public function __construct(Filter $filter) | ||||
|     { | ||||
|         $this->ensureXdebugIsAvailable(); | ||||
|         $this->ensureXdebugCodeCoverageFeatureIsEnabled(); | ||||
|  | ||||
|         if (!$filter->isEmpty()) { | ||||
|             xdebug_set_filter( | ||||
| @@ -82,9 +85,18 @@ final class XdebugDriver extends Driver | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public function canDetectDeadCode(): bool | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     public function start(): void | ||||
|     { | ||||
|         $flags = XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE; | ||||
|         $flags = XDEBUG_CC_UNUSED; | ||||
|  | ||||
|         if ($this->detectsDeadCode() || $this->collectsBranchAndPathCoverage()) { | ||||
|             $flags |= XDEBUG_CC_DEAD_CODE; | ||||
|         } | ||||
|  | ||||
|         if ($this->collectsBranchAndPathCoverage()) { | ||||
|             $flags |= XDEBUG_CC_BRANCH_CHECK; | ||||
| @@ -115,21 +127,36 @@ final class XdebugDriver extends Driver | ||||
|  | ||||
|     /** | ||||
|      * @throws XdebugNotAvailableException | ||||
|      * @throws XdebugNotEnabledException | ||||
|      * @throws XdebugVersionNotSupportedException | ||||
|      */ | ||||
|     private function ensureXdebugIsAvailable(): void | ||||
|     { | ||||
|         if (!extension_loaded('xdebug')) { | ||||
|             throw new XdebugNotAvailableException; | ||||
|         } | ||||
|  | ||||
|         if (!version_compare(phpversion('xdebug'), '3.1', '>=')) { | ||||
|             throw new XdebugVersionNotSupportedException(phpversion('xdebug')); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @throws XdebugNotEnabledException | ||||
|      */ | ||||
|     private function ensureXdebugCodeCoverageFeatureIsEnabled(): void | ||||
|     { | ||||
|         if (version_compare(phpversion('xdebug'), '3.1', '>=')) { | ||||
|             if (!in_array('coverage', xdebug_info('mode'), true)) { | ||||
|                 throw new XdebugNotEnabledException; | ||||
|             } | ||||
|  | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $mode = getenv('XDEBUG_MODE'); | ||||
|  | ||||
|         if ($mode === false || $mode === '') { | ||||
|             $mode = ini_get('xdebug.mode'); | ||||
|         } | ||||
|  | ||||
|         if ($mode === false || | ||||
|             !in_array('coverage', explode(',', $mode), true)) { | ||||
|             throw new XdebugNotEnabledException; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										16
									
								
								vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								vendor/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage; | ||||
|  | ||||
| use RuntimeException; | ||||
|  | ||||
| final class DeadCodeDetectionNotSupportedException extends RuntimeException implements Exception | ||||
| { | ||||
| } | ||||
| @@ -1,27 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function sprintf; | ||||
| use RuntimeException; | ||||
| use SebastianBergmann\CodeCoverage\Exception; | ||||
|  | ||||
| final class InvalidCodeCoverageTargetException extends RuntimeException implements Exception | ||||
| { | ||||
|     public function __construct(Target $target) | ||||
|     { | ||||
|         parent::__construct( | ||||
|             sprintf( | ||||
|                 '%s is not a valid target for code coverage', | ||||
|                 $target->description(), | ||||
|             ), | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @@ -1,30 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Driver; | ||||
|  | ||||
| use function sprintf; | ||||
| use RuntimeException; | ||||
| use SebastianBergmann\CodeCoverage\Exception; | ||||
|  | ||||
| final class XdebugVersionNotSupportedException extends RuntimeException implements Exception | ||||
| { | ||||
|     /** | ||||
|      * @param non-empty-string $version | ||||
|      */ | ||||
|     public function __construct(string $version) | ||||
|     { | ||||
|         parent::__construct( | ||||
|             sprintf( | ||||
|                 'Version %s of the Xdebug extension is not supported', | ||||
|                 $version, | ||||
|             ), | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @@ -15,24 +15,20 @@ use function str_ends_with; | ||||
| use function str_replace; | ||||
| use function substr; | ||||
| use Countable; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; | ||||
| use SebastianBergmann\CodeCoverage\Util\Percentage; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type ProcessedFunctionType from File | ||||
|  * @phpstan-import-type ProcessedClassType from File | ||||
|  * @phpstan-import-type ProcessedTraitType from File | ||||
|  * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  * @phpstan-import-type ProcessedFunctionType from \SebastianBergmann\CodeCoverage\Node\File | ||||
|  * @phpstan-import-type ProcessedClassType from \SebastianBergmann\CodeCoverage\Node\File | ||||
|  * @phpstan-import-type ProcessedTraitType from \SebastianBergmann\CodeCoverage\Node\File | ||||
|  */ | ||||
| abstract class AbstractNode implements Countable | ||||
| { | ||||
|     private readonly string $name; | ||||
|     private string $pathAsString; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-list<self> | ||||
|      */ | ||||
|     private array $pathAsArray; | ||||
|     private readonly ?AbstractNode $parent; | ||||
|     private string $id; | ||||
| @@ -65,9 +61,6 @@ abstract class AbstractNode implements Countable | ||||
|         return $this->pathAsString; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-list<self> | ||||
|      */ | ||||
|     public function pathAsArray(): array | ||||
|     { | ||||
|         return $this->pathAsArray; | ||||
| @@ -193,7 +186,10 @@ abstract class AbstractNode implements Countable | ||||
|      */ | ||||
|     abstract public function functions(): array; | ||||
|  | ||||
|     abstract public function linesOfCode(): LinesOfCode; | ||||
|     /** | ||||
|      * @return LinesOfCodeType | ||||
|      */ | ||||
|     abstract public function linesOfCode(): array; | ||||
|  | ||||
|     abstract public function numberOfExecutableLines(): int; | ||||
|  | ||||
|   | ||||
| @@ -28,11 +28,11 @@ use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type TestType from CodeCoverage | ||||
|  * @phpstan-import-type TestType from \SebastianBergmann\CodeCoverage\CodeCoverage | ||||
|  */ | ||||
| final readonly class Builder | ||||
| final class Builder | ||||
| { | ||||
|     private FileAnalyser $analyser; | ||||
|     private readonly FileAnalyser $analyser; | ||||
|  | ||||
|     public function __construct(FileAnalyser $analyser) | ||||
|     { | ||||
| @@ -223,7 +223,6 @@ final readonly class Builder | ||||
|                 $paths[$i] = substr($paths[$i], 7); | ||||
|                 $paths[$i] = str_replace('/', DIRECTORY_SEPARATOR, $paths[$i]); | ||||
|             } | ||||
|  | ||||
|             $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]); | ||||
|  | ||||
|             if (empty($paths[$i][0])) { | ||||
|   | ||||
| @@ -14,10 +14,10 @@ use function sprintf; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class CrapIndex | ||||
| final class CrapIndex | ||||
| { | ||||
|     private int $cyclomaticComplexity; | ||||
|     private float $codeCoverage; | ||||
|     private readonly int $cyclomaticComplexity; | ||||
|     private readonly float $codeCoverage; | ||||
|  | ||||
|     public function __construct(int $cyclomaticComplexity, float $codeCoverage) | ||||
|     { | ||||
|   | ||||
| @@ -14,16 +14,11 @@ use function assert; | ||||
| use function count; | ||||
| use IteratorAggregate; | ||||
| use RecursiveIteratorIterator; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; | ||||
|  | ||||
| /** | ||||
|  * @template-implements IteratorAggregate<int, AbstractNode> | ||||
|  * | ||||
|  * @phpstan-import-type ProcessedFunctionType from File | ||||
|  * @phpstan-import-type ProcessedClassType from File | ||||
|  * @phpstan-import-type ProcessedTraitType from File | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  */ | ||||
| final class Directory extends AbstractNode implements IteratorAggregate | ||||
| { | ||||
| @@ -41,22 +36,14 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|      * @var list<File> | ||||
|      */ | ||||
|     private array $files      = []; | ||||
|  | ||||
|     /** | ||||
|      * @var ?array<string, ProcessedClassType> | ||||
|      */ | ||||
|     private ?array $classes   = null; | ||||
|  | ||||
|     /** | ||||
|      * @var ?array<string, ProcessedTraitType> | ||||
|      */ | ||||
|     private ?array $traits    = null; | ||||
|     private ?array $functions = null; | ||||
|  | ||||
|     /** | ||||
|      * @var ?array<string, ProcessedFunctionType> | ||||
|      * @var null|LinesOfCodeType | ||||
|      */ | ||||
|     private ?array $functions          = null; | ||||
|     private ?LinesOfCode $linesOfCode  = null; | ||||
|     private ?array $linesOfCode        = null; | ||||
|     private int $numFiles              = -1; | ||||
|     private int $numExecutableLines    = -1; | ||||
|     private int $numExecutedLines      = -1; | ||||
| @@ -86,9 +73,6 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|         return $this->numFiles; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return RecursiveIteratorIterator<Iterator<AbstractNode>> | ||||
|      */ | ||||
|     public function getIterator(): RecursiveIteratorIterator | ||||
|     { | ||||
|         return new RecursiveIteratorIterator( | ||||
| @@ -118,33 +102,21 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|         $this->numExecutedLines   = -1; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<Directory> | ||||
|      */ | ||||
|     public function directories(): array | ||||
|     { | ||||
|         return $this->directories; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<File> | ||||
|      */ | ||||
|     public function files(): array | ||||
|     { | ||||
|         return $this->files; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<Directory|File> | ||||
|      */ | ||||
|     public function children(): array | ||||
|     { | ||||
|         return $this->children; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, ProcessedClassType> | ||||
|      */ | ||||
|     public function classes(): array | ||||
|     { | ||||
|         if ($this->classes === null) { | ||||
| @@ -161,9 +133,6 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|         return $this->classes; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, ProcessedTraitType> | ||||
|      */ | ||||
|     public function traits(): array | ||||
|     { | ||||
|         if ($this->traits === null) { | ||||
| @@ -180,9 +149,6 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|         return $this->traits; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, ProcessedFunctionType> | ||||
|      */ | ||||
|     public function functions(): array | ||||
|     { | ||||
|         if ($this->functions === null) { | ||||
| @@ -199,22 +165,25 @@ final class Directory extends AbstractNode implements IteratorAggregate | ||||
|         return $this->functions; | ||||
|     } | ||||
|  | ||||
|     public function linesOfCode(): LinesOfCode | ||||
|     /** | ||||
|      * @return LinesOfCodeType | ||||
|      */ | ||||
|     public function linesOfCode(): array | ||||
|     { | ||||
|         if ($this->linesOfCode === null) { | ||||
|             $linesOfCode           = 0; | ||||
|             $commentLinesOfCode    = 0; | ||||
|             $nonCommentLinesOfCode = 0; | ||||
|             $this->linesOfCode = [ | ||||
|                 'linesOfCode'           => 0, | ||||
|                 'commentLinesOfCode'    => 0, | ||||
|                 'nonCommentLinesOfCode' => 0, | ||||
|             ]; | ||||
|  | ||||
|             foreach ($this->children as $child) { | ||||
|                 $childLinesOfCode = $child->linesOfCode(); | ||||
|  | ||||
|                 $linesOfCode           += $childLinesOfCode->linesOfCode(); | ||||
|                 $commentLinesOfCode    += $childLinesOfCode->commentLinesOfCode(); | ||||
|                 $nonCommentLinesOfCode += $childLinesOfCode->nonCommentLinesOfCode(); | ||||
|                 $this->linesOfCode['linesOfCode']           += $childLinesOfCode['linesOfCode']; | ||||
|                 $this->linesOfCode['commentLinesOfCode']    += $childLinesOfCode['commentLinesOfCode']; | ||||
|                 $this->linesOfCode['nonCommentLinesOfCode'] += $childLinesOfCode['nonCommentLinesOfCode']; | ||||
|             } | ||||
|  | ||||
|             $this->linesOfCode = new LinesOfCode($linesOfCode, $commentLinesOfCode, $nonCommentLinesOfCode); | ||||
|         } | ||||
|  | ||||
|         return $this->linesOfCode; | ||||
|   | ||||
							
								
								
									
										124
									
								
								vendor/phpunit/php-code-coverage/src/Node/File.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										124
									
								
								vendor/phpunit/php-code-coverage/src/Node/File.php
									
									
									
									
										vendored
									
									
								
							| @@ -12,21 +12,18 @@ namespace SebastianBergmann\CodeCoverage\Node; | ||||
| use function array_filter; | ||||
| use function count; | ||||
| use function range; | ||||
| use SebastianBergmann\CodeCoverage\CodeCoverage; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Function_; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Method; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type TestType from CodeCoverage | ||||
|  * @phpstan-import-type LinesType from FileAnalyser | ||||
|  * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  * | ||||
|  * @phpstan-type ProcessedFunctionType array{ | ||||
|  * @phpstan-type ProcessedFunctionType = array{ | ||||
|  *     functionName: string, | ||||
|  *     namespace: string, | ||||
|  *     signature: string, | ||||
| @@ -43,7 +40,7 @@ use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; | ||||
|  *     crap: int|string, | ||||
|  *     link: string | ||||
|  * } | ||||
|  * @phpstan-type ProcessedMethodType array{ | ||||
|  * @phpstan-type ProcessedMethodType = array{ | ||||
|  *     methodName: string, | ||||
|  *     visibility: string, | ||||
|  *     signature: string, | ||||
| @@ -60,7 +57,7 @@ use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; | ||||
|  *     crap: int|string, | ||||
|  *     link: string | ||||
|  * } | ||||
|  * @phpstan-type ProcessedClassType array{ | ||||
|  * @phpstan-type ProcessedClassType = array{ | ||||
|  *     className: string, | ||||
|  *     namespace: string, | ||||
|  *     methods: array<string, ProcessedMethodType>, | ||||
| @@ -76,7 +73,7 @@ use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; | ||||
|  *     crap: int|string, | ||||
|  *     link: string | ||||
|  * } | ||||
|  * @phpstan-type ProcessedTraitType array{ | ||||
|  * @phpstan-type ProcessedTraitType = array{ | ||||
|  *     traitName: string, | ||||
|  *     namespace: string, | ||||
|  *     methods: array<string, ProcessedMethodType>, | ||||
| @@ -100,10 +97,6 @@ final class File extends AbstractNode | ||||
|      */ | ||||
|     private array $lineCoverageData; | ||||
|     private array $functionCoverageData; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, TestType> | ||||
|      */ | ||||
|     private readonly array $testData; | ||||
|     private int $numExecutableLines    = 0; | ||||
|     private int $numExecutedLines      = 0; | ||||
| @@ -126,7 +119,11 @@ final class File extends AbstractNode | ||||
|      * @var array<string, ProcessedFunctionType> | ||||
|      */ | ||||
|     private array $functions = []; | ||||
|     private readonly LinesOfCode $linesOfCode; | ||||
|  | ||||
|     /** | ||||
|      * @var LinesOfCodeType | ||||
|      */ | ||||
|     private readonly array $linesOfCode; | ||||
|     private ?int $numClasses         = null; | ||||
|     private int $numTestedClasses    = 0; | ||||
|     private ?int $numTraits          = null; | ||||
| @@ -136,18 +133,18 @@ final class File extends AbstractNode | ||||
|     private ?int $numTestedFunctions = null; | ||||
|  | ||||
|     /** | ||||
|      * @var array<int, array|array{0: Class_, 1: string}|array{0: Function_}|array{0: Trait_, 1: string}> | ||||
|      * @var array<int, array|array{0: CodeUnitClassType, 1: string}|array{0: CodeUnitFunctionType}|array{0: CodeUnitTraitType, 1: string}> | ||||
|      */ | ||||
|     private array $codeUnitsByLine = []; | ||||
|  | ||||
|     /** | ||||
|      * @param array<int, ?list<non-empty-string>> $lineCoverageData | ||||
|      * @param array<string, TestType>             $testData | ||||
|      * @param array<string, Class_>               $classes | ||||
|      * @param array<string, Trait_>               $traits | ||||
|      * @param array<string, Function_>            $functions | ||||
|      * @param array<string, CodeUnitClassType>    $classes | ||||
|      * @param array<string, CodeUnitTraitType>    $traits | ||||
|      * @param array<string, CodeUnitFunctionType> $functions | ||||
|      * @param LinesOfCodeType                     $linesOfCode | ||||
|      */ | ||||
|     public function __construct(string $name, AbstractNode $parent, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, LinesOfCode $linesOfCode) | ||||
|     public function __construct(string $name, AbstractNode $parent, array $lineCoverageData, array $functionCoverageData, array $testData, array $classes, array $traits, array $functions, array $linesOfCode) | ||||
|     { | ||||
|         parent::__construct($name, $parent); | ||||
|  | ||||
| @@ -177,9 +174,6 @@ final class File extends AbstractNode | ||||
|         return $this->functionCoverageData; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, TestType> | ||||
|      */ | ||||
|     public function testData(): array | ||||
|     { | ||||
|         return $this->testData; | ||||
| @@ -209,7 +203,7 @@ final class File extends AbstractNode | ||||
|         return $this->functions; | ||||
|     } | ||||
|  | ||||
|     public function linesOfCode(): LinesOfCode | ||||
|     public function linesOfCode(): array | ||||
|     { | ||||
|         return $this->linesOfCode; | ||||
|     } | ||||
| @@ -366,13 +360,13 @@ final class File extends AbstractNode | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, Class_>    $classes | ||||
|      * @param array<string, Trait_>    $traits | ||||
|      * @param array<string, Function_> $functions | ||||
|      * @param array<string, CodeUnitClassType>    $classes | ||||
|      * @param array<string, CodeUnitTraitType>    $traits | ||||
|      * @param array<string, CodeUnitFunctionType> $functions | ||||
|      */ | ||||
|     private function calculateStatistics(array $classes, array $traits, array $functions): void | ||||
|     { | ||||
|         foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { | ||||
|         foreach (range(1, $this->linesOfCode['linesOfCode']) as $lineNumber) { | ||||
|             $this->codeUnitsByLine[$lineNumber] = []; | ||||
|         } | ||||
|  | ||||
| @@ -380,7 +374,7 @@ final class File extends AbstractNode | ||||
|         $this->processTraits($traits); | ||||
|         $this->processFunctions($functions); | ||||
|  | ||||
|         foreach (range(1, $this->linesOfCode->linesOfCode()) as $lineNumber) { | ||||
|         foreach (range(1, $this->linesOfCode['linesOfCode']) as $lineNumber) { | ||||
|             if (isset($this->lineCoverageData[$lineNumber])) { | ||||
|                 foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { | ||||
|                     $codeUnit['executableLines']++; | ||||
| @@ -473,7 +467,7 @@ final class File extends AbstractNode | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, Class_> $classes | ||||
|      * @param array<string, CodeUnitClassType> $classes | ||||
|      */ | ||||
|     private function processClasses(array $classes): void | ||||
|     { | ||||
| @@ -482,9 +476,9 @@ final class File extends AbstractNode | ||||
|         foreach ($classes as $className => $class) { | ||||
|             $this->classes[$className] = [ | ||||
|                 'className'          => $className, | ||||
|                 'namespace'          => $class->namespace(), | ||||
|                 'namespace'          => $class['namespace'], | ||||
|                 'methods'            => [], | ||||
|                 'startLine'          => $class->startLine(), | ||||
|                 'startLine'          => $class['startLine'], | ||||
|                 'executableLines'    => 0, | ||||
|                 'executedLines'      => 0, | ||||
|                 'executableBranches' => 0, | ||||
| @@ -494,11 +488,11 @@ final class File extends AbstractNode | ||||
|                 'ccn'                => 0, | ||||
|                 'coverage'           => 0, | ||||
|                 'crap'               => 0, | ||||
|                 'link'               => $link . $class->startLine(), | ||||
|                 'link'               => $link . $class['startLine'], | ||||
|             ]; | ||||
|  | ||||
|             foreach ($class->methods() as $methodName => $method) { | ||||
|                 $methodData                                        = $this->newMethod($className, $method, $link); | ||||
|             foreach ($class['methods'] as $methodName => $method) { | ||||
|                 $methodData                                        = $this->newMethod($className, $methodName, $method, $link); | ||||
|                 $this->classes[$className]['methods'][$methodName] = $methodData; | ||||
|  | ||||
|                 $this->classes[$className]['executableBranches'] += $methodData['executableBranches']; | ||||
| @@ -511,7 +505,7 @@ final class File extends AbstractNode | ||||
|                 $this->numExecutablePaths    += $methodData['executablePaths']; | ||||
|                 $this->numExecutedPaths      += $methodData['executedPaths']; | ||||
|  | ||||
|                 foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { | ||||
|                 foreach (range($method['startLine'], $method['endLine']) as $lineNumber) { | ||||
|                     $this->codeUnitsByLine[$lineNumber] = [ | ||||
|                         &$this->classes[$className], | ||||
|                         &$this->classes[$className]['methods'][$methodName], | ||||
| @@ -522,7 +516,7 @@ final class File extends AbstractNode | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, Trait_> $traits | ||||
|      * @param array<string, CodeUnitTraitType> $traits | ||||
|      */ | ||||
|     private function processTraits(array $traits): void | ||||
|     { | ||||
| @@ -531,9 +525,9 @@ final class File extends AbstractNode | ||||
|         foreach ($traits as $traitName => $trait) { | ||||
|             $this->traits[$traitName] = [ | ||||
|                 'traitName'          => $traitName, | ||||
|                 'namespace'          => $trait->namespace(), | ||||
|                 'namespace'          => $trait['namespace'], | ||||
|                 'methods'            => [], | ||||
|                 'startLine'          => $trait->startLine(), | ||||
|                 'startLine'          => $trait['startLine'], | ||||
|                 'executableLines'    => 0, | ||||
|                 'executedLines'      => 0, | ||||
|                 'executableBranches' => 0, | ||||
| @@ -543,11 +537,11 @@ final class File extends AbstractNode | ||||
|                 'ccn'                => 0, | ||||
|                 'coverage'           => 0, | ||||
|                 'crap'               => 0, | ||||
|                 'link'               => $link . $trait->startLine(), | ||||
|                 'link'               => $link . $trait['startLine'], | ||||
|             ]; | ||||
|  | ||||
|             foreach ($trait->methods() as $methodName => $method) { | ||||
|                 $methodData                                       = $this->newMethod($traitName, $method, $link); | ||||
|             foreach ($trait['methods'] as $methodName => $method) { | ||||
|                 $methodData                                       = $this->newMethod($traitName, $methodName, $method, $link); | ||||
|                 $this->traits[$traitName]['methods'][$methodName] = $methodData; | ||||
|  | ||||
|                 $this->traits[$traitName]['executableBranches'] += $methodData['executableBranches']; | ||||
| @@ -560,7 +554,7 @@ final class File extends AbstractNode | ||||
|                 $this->numExecutablePaths    += $methodData['executablePaths']; | ||||
|                 $this->numExecutedPaths      += $methodData['executedPaths']; | ||||
|  | ||||
|                 foreach (range($method->startLine(), $method->endLine()) as $lineNumber) { | ||||
|                 foreach (range($method['startLine'], $method['endLine']) as $lineNumber) { | ||||
|                     $this->codeUnitsByLine[$lineNumber] = [ | ||||
|                         &$this->traits[$traitName], | ||||
|                         &$this->traits[$traitName]['methods'][$methodName], | ||||
| @@ -571,7 +565,7 @@ final class File extends AbstractNode | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, Function_> $functions | ||||
|      * @param array<string, CodeUnitFunctionType> $functions | ||||
|      */ | ||||
|     private function processFunctions(array $functions): void | ||||
|     { | ||||
| @@ -580,23 +574,23 @@ final class File extends AbstractNode | ||||
|         foreach ($functions as $functionName => $function) { | ||||
|             $this->functions[$functionName] = [ | ||||
|                 'functionName'       => $functionName, | ||||
|                 'namespace'          => $function->namespace(), | ||||
|                 'signature'          => $function->signature(), | ||||
|                 'startLine'          => $function->startLine(), | ||||
|                 'endLine'            => $function->endLine(), | ||||
|                 'namespace'          => $function['namespace'], | ||||
|                 'signature'          => $function['signature'], | ||||
|                 'startLine'          => $function['startLine'], | ||||
|                 'endLine'            => $function['endLine'], | ||||
|                 'executableLines'    => 0, | ||||
|                 'executedLines'      => 0, | ||||
|                 'executableBranches' => 0, | ||||
|                 'executedBranches'   => 0, | ||||
|                 'executablePaths'    => 0, | ||||
|                 'executedPaths'      => 0, | ||||
|                 'ccn'                => $function->cyclomaticComplexity(), | ||||
|                 'ccn'                => $function['ccn'], | ||||
|                 'coverage'           => 0, | ||||
|                 'crap'               => 0, | ||||
|                 'link'               => $link . $function->startLine(), | ||||
|                 'link'               => $link . $function['startLine'], | ||||
|             ]; | ||||
|  | ||||
|             foreach (range($function->startLine(), $function->endLine()) as $lineNumber) { | ||||
|             foreach (range($function['startLine'], $function['endLine']) as $lineNumber) { | ||||
|                 $this->codeUnitsByLine[$lineNumber] = [&$this->functions[$functionName]]; | ||||
|             } | ||||
|  | ||||
| @@ -640,29 +634,31 @@ final class File extends AbstractNode | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param CodeUnitMethodType $method | ||||
|      * | ||||
|      * @return ProcessedMethodType | ||||
|      */ | ||||
|     private function newMethod(string $className, Method $method, string $link): array | ||||
|     private function newMethod(string $className, string $methodName, array $method, string $link): array | ||||
|     { | ||||
|         $methodData = [ | ||||
|             'methodName'         => $method->name(), | ||||
|             'visibility'         => $method->visibility()->value, | ||||
|             'signature'          => $method->signature(), | ||||
|             'startLine'          => $method->startLine(), | ||||
|             'endLine'            => $method->endLine(), | ||||
|             'methodName'         => $methodName, | ||||
|             'visibility'         => $method['visibility'], | ||||
|             'signature'          => $method['signature'], | ||||
|             'startLine'          => $method['startLine'], | ||||
|             'endLine'            => $method['endLine'], | ||||
|             'executableLines'    => 0, | ||||
|             'executedLines'      => 0, | ||||
|             'executableBranches' => 0, | ||||
|             'executedBranches'   => 0, | ||||
|             'executablePaths'    => 0, | ||||
|             'executedPaths'      => 0, | ||||
|             'ccn'                => $method->cyclomaticComplexity(), | ||||
|             'ccn'                => $method['ccn'], | ||||
|             'coverage'           => 0, | ||||
|             'crap'               => 0, | ||||
|             'link'               => $link . $method->startLine(), | ||||
|             'link'               => $link . $method['startLine'], | ||||
|         ]; | ||||
|  | ||||
|         $key = $className . '->' . $method->name(); | ||||
|         $key = $className . '->' . $methodName; | ||||
|  | ||||
|         if (isset($this->functionCoverageData[$key]['branches'])) { | ||||
|             $methodData['executableBranches'] = count( | ||||
|   | ||||
| @@ -9,13 +9,10 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Node; | ||||
|  | ||||
| use function assert; | ||||
| use function count; | ||||
| use RecursiveIterator; | ||||
|  | ||||
| /** | ||||
|  * @template-implements RecursiveIterator<int, AbstractNode> | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Iterator implements RecursiveIterator | ||||
| @@ -32,38 +29,57 @@ final class Iterator implements RecursiveIterator | ||||
|         $this->nodes = $node->children(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rewinds the Iterator to the first element. | ||||
|      */ | ||||
|     public function rewind(): void | ||||
|     { | ||||
|         $this->position = 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Checks if there is a current element after calls to rewind() or next(). | ||||
|      */ | ||||
|     public function valid(): bool | ||||
|     { | ||||
|         return $this->position < count($this->nodes); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the key of the current element. | ||||
|      */ | ||||
|     public function key(): int | ||||
|     { | ||||
|         return $this->position; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the current element. | ||||
|      */ | ||||
|     public function current(): ?AbstractNode | ||||
|     { | ||||
|         return $this->valid() ? $this->nodes[$this->position] : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Moves forward to next element. | ||||
|      */ | ||||
|     public function next(): void | ||||
|     { | ||||
|         $this->position++; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns the sub iterator for the current element. | ||||
|      */ | ||||
|     public function getChildren(): self | ||||
|     { | ||||
|         assert($this->nodes[$this->position] instanceof Directory); | ||||
|  | ||||
|         return new self($this->nodes[$this->position]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Checks whether the current element has children. | ||||
|      */ | ||||
|     public function hasChildren(): bool | ||||
|     { | ||||
|         return $this->nodes[$this->position] instanceof Directory; | ||||
|   | ||||
| @@ -168,8 +168,8 @@ final class Clover | ||||
|             $linesOfCode = $item->linesOfCode(); | ||||
|  | ||||
|             $xmlMetrics = $xmlDocument->createElement('metrics'); | ||||
|             $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); | ||||
|             $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); | ||||
|             $xmlMetrics->setAttribute('loc', (string) $linesOfCode['linesOfCode']); | ||||
|             $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode['nonCommentLinesOfCode']); | ||||
|             $xmlMetrics->setAttribute('classes', (string) $item->numberOfClassesAndTraits()); | ||||
|             $xmlMetrics->setAttribute('methods', (string) $item->numberOfMethods()); | ||||
|             $xmlMetrics->setAttribute('coveredmethods', (string) $item->numberOfTestedMethods()); | ||||
| @@ -201,8 +201,8 @@ final class Clover | ||||
|  | ||||
|         $xmlMetrics = $xmlDocument->createElement('metrics'); | ||||
|         $xmlMetrics->setAttribute('files', (string) count($report)); | ||||
|         $xmlMetrics->setAttribute('loc', (string) $linesOfCode->linesOfCode()); | ||||
|         $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode->nonCommentLinesOfCode()); | ||||
|         $xmlMetrics->setAttribute('loc', (string) $linesOfCode['linesOfCode']); | ||||
|         $xmlMetrics->setAttribute('ncloc', (string) $linesOfCode['nonCommentLinesOfCode']); | ||||
|         $xmlMetrics->setAttribute('classes', (string) $report->numberOfClassesAndTraits()); | ||||
|         $xmlMetrics->setAttribute('methods', (string) $report->numberOfMethods()); | ||||
|         $xmlMetrics->setAttribute('coveredmethods', (string) $report->numberOfTestedMethods()); | ||||
|   | ||||
| @@ -153,7 +153,7 @@ final class Cobertura | ||||
|  | ||||
|                     $linesValid   = $method['executableLines']; | ||||
|                     $linesCovered = $method['executedLines']; | ||||
|                     $lineRate     = $linesCovered / $linesValid; | ||||
|                     $lineRate     = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); | ||||
|  | ||||
|                     $branchesValid   = $method['executableBranches']; | ||||
|                     $branchesCovered = $method['executedBranches']; | ||||
| @@ -228,7 +228,7 @@ final class Cobertura | ||||
|  | ||||
|                 $linesValid   = $function['executableLines']; | ||||
|                 $linesCovered = $function['executedLines']; | ||||
|                 $lineRate     = $linesCovered / $linesValid; | ||||
|                 $lineRate     = $linesValid === 0 ? 0 : ($linesCovered / $linesValid); | ||||
|  | ||||
|                 $functionsLinesValid   += $linesValid; | ||||
|                 $functionsLinesCovered += $linesCovered; | ||||
|   | ||||
| @@ -22,9 +22,9 @@ use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; | ||||
| use SebastianBergmann\CodeCoverage\Node\File; | ||||
| use SebastianBergmann\CodeCoverage\Util\Filesystem; | ||||
|  | ||||
| final readonly class Crap4j | ||||
| final class Crap4j | ||||
| { | ||||
|     private int $threshold; | ||||
|     private readonly int $threshold; | ||||
|  | ||||
|     public function __construct(int $threshold = 30) | ||||
|     { | ||||
|   | ||||
| @@ -12,13 +12,13 @@ namespace SebastianBergmann\CodeCoverage\Report\Html; | ||||
| /** | ||||
|  * @immutable | ||||
|  */ | ||||
| final readonly class Colors | ||||
| final class Colors | ||||
| { | ||||
|     private string $successLow; | ||||
|     private string $successMedium; | ||||
|     private string $successHigh; | ||||
|     private string $warning; | ||||
|     private string $danger; | ||||
|     private readonly string $successLow; | ||||
|     private readonly string $successMedium; | ||||
|     private readonly string $successHigh; | ||||
|     private readonly string $warning; | ||||
|     private readonly string $danger; | ||||
|  | ||||
|     public static function default(): self | ||||
|     { | ||||
|   | ||||
| @@ -15,9 +15,9 @@ use SebastianBergmann\CodeCoverage\InvalidArgumentException; | ||||
| /** | ||||
|  * @immutable | ||||
|  */ | ||||
| final readonly class CustomCssFile | ||||
| final class CustomCssFile | ||||
| { | ||||
|     private string $path; | ||||
|     private readonly string $path; | ||||
|  | ||||
|     public static function default(): self | ||||
|     { | ||||
|   | ||||
| @@ -22,13 +22,13 @@ use SebastianBergmann\CodeCoverage\Util\Filesystem; | ||||
| use SebastianBergmann\Template\Exception; | ||||
| use SebastianBergmann\Template\Template; | ||||
|  | ||||
| final readonly class Facade | ||||
| final class Facade | ||||
| { | ||||
|     private string $templatePath; | ||||
|     private string $generator; | ||||
|     private Colors $colors; | ||||
|     private Thresholds $thresholds; | ||||
|     private CustomCssFile $customCssFile; | ||||
|     private readonly string $templatePath; | ||||
|     private readonly string $generator; | ||||
|     private readonly Colors $colors; | ||||
|     private readonly Thresholds $thresholds; | ||||
|     private readonly CustomCssFile $customCssFile; | ||||
|  | ||||
|     public function __construct(string $generator = '', ?Colors $colors = null, ?Thresholds $thresholds = null, ?CustomCssFile $customCssFile = null) | ||||
|     { | ||||
|   | ||||
| @@ -44,9 +44,6 @@ abstract class Renderer | ||||
|         $this->hasBranchCoverage = $hasBranchCoverage; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<non-empty-string, float|int|string> $data | ||||
|      */ | ||||
|     protected function renderItemTemplate(Template $template, array $data): string | ||||
|     { | ||||
|         $numSeparator = ' / '; | ||||
| @@ -174,8 +171,8 @@ abstract class Renderer | ||||
|                 'version'          => $this->version, | ||||
|                 'runtime'          => $this->runtimeString(), | ||||
|                 'generator'        => $this->generator, | ||||
|                 'low_upper_bound'  => (string) $this->thresholds->lowUpperBound(), | ||||
|                 'high_lower_bound' => (string) $this->thresholds->highLowerBound(), | ||||
|                 'low_upper_bound'  => $this->thresholds->lowUpperBound(), | ||||
|                 'high_lower_bound' => $this->thresholds->highLowerBound(), | ||||
|             ], | ||||
|         ); | ||||
|     } | ||||
|   | ||||
| @@ -12,7 +12,6 @@ namespace SebastianBergmann\CodeCoverage\Report\Html; | ||||
| use function array_values; | ||||
| use function arsort; | ||||
| use function asort; | ||||
| use function assert; | ||||
| use function count; | ||||
| use function explode; | ||||
| use function floor; | ||||
| @@ -22,14 +21,10 @@ use function str_replace; | ||||
| use SebastianBergmann\CodeCoverage\FileCouldNotBeWrittenException; | ||||
| use SebastianBergmann\CodeCoverage\Node\AbstractNode; | ||||
| use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; | ||||
| use SebastianBergmann\CodeCoverage\Node\File as FileNode; | ||||
| use SebastianBergmann\Template\Exception; | ||||
| use SebastianBergmann\Template\Template; | ||||
|  | ||||
| /** | ||||
|  * @phpstan-import-type ProcessedClassType from FileNode | ||||
|  * @phpstan-import-type ProcessedTraitType from FileNode | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Dashboard extends Renderer | ||||
| @@ -86,9 +81,7 @@ final class Dashboard extends Renderer | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedClassType|ProcessedTraitType> $classes | ||||
|      * | ||||
|      * @return array{class: non-empty-string, method: non-empty-string} | ||||
|      * Returns the data for the Class/Method Complexity charts. | ||||
|      */ | ||||
|     private function complexity(array $classes, string $baseLink): array | ||||
|     { | ||||
| @@ -122,21 +115,14 @@ final class Dashboard extends Renderer | ||||
|             ]; | ||||
|         } | ||||
|  | ||||
|         $class = json_encode($result['class']); | ||||
|  | ||||
|         assert($class !== false); | ||||
|  | ||||
|         $method = json_encode($result['method']); | ||||
|  | ||||
|         assert($method !== false); | ||||
|  | ||||
|         return ['class' => $class, 'method' => $method]; | ||||
|         return [ | ||||
|             'class'  => json_encode($result['class']), | ||||
|             'method' => json_encode($result['method']), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedClassType|ProcessedTraitType> $classes | ||||
|      * | ||||
|      * @return array{class: non-empty-string, method: non-empty-string} | ||||
|      * Returns the data for the Class / Method Coverage Distribution chart. | ||||
|      */ | ||||
|     private function coverageDistribution(array $classes): array | ||||
|     { | ||||
| @@ -195,21 +181,14 @@ final class Dashboard extends Renderer | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         $class = json_encode(array_values($result['class'])); | ||||
|  | ||||
|         assert($class !== false); | ||||
|  | ||||
|         $method = json_encode(array_values($result['method'])); | ||||
|  | ||||
|         assert($method !== false); | ||||
|  | ||||
|         return ['class' => $class, 'method' => $method]; | ||||
|         return [ | ||||
|             'class'  => json_encode(array_values($result['class'])), | ||||
|             'method' => json_encode(array_values($result['method'])), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedClassType|ProcessedTraitType> $classes | ||||
|      * | ||||
|      * @return array{class: string, method: string} | ||||
|      * Returns the classes / methods with insufficient coverage. | ||||
|      */ | ||||
|     private function insufficientCoverage(array $classes, string $baseLink): array | ||||
|     { | ||||
| @@ -263,9 +242,7 @@ final class Dashboard extends Renderer | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedClassType|ProcessedTraitType> $classes | ||||
|      * | ||||
|      * @return array{class: string, method: string} | ||||
|      * Returns the project risks according to the CRAP index. | ||||
|      */ | ||||
|     private function projectRisks(array $classes, string $baseLink): array | ||||
|     { | ||||
|   | ||||
| @@ -108,11 +108,6 @@ use SebastianBergmann\Template\Exception; | ||||
| use SebastianBergmann\Template\Template; | ||||
|  | ||||
| /** | ||||
|  * @phpstan-import-type ProcessedClassType from FileNode | ||||
|  * @phpstan-import-type ProcessedTraitType from FileNode | ||||
|  * @phpstan-import-type ProcessedMethodType from FileNode | ||||
|  * @phpstan-import-type ProcessedFunctionType from FileNode | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class File extends Renderer | ||||
| @@ -120,7 +115,7 @@ final class File extends Renderer | ||||
|     /** | ||||
|      * @var array<int,true> | ||||
|      */ | ||||
|     private const array KEYWORD_TOKENS = [ | ||||
|     private const KEYWORD_TOKENS = [ | ||||
|         T_ABSTRACT      => true, | ||||
|         T_ARRAY         => true, | ||||
|         T_AS            => true, | ||||
| @@ -190,13 +185,8 @@ final class File extends Renderer | ||||
|         T_YIELD         => true, | ||||
|         T_YIELD_FROM    => true, | ||||
|     ]; | ||||
|  | ||||
|     private const int HTML_SPECIAL_CHARS_FLAGS = ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE; | ||||
|  | ||||
|     /** | ||||
|      * @var array<non-empty-string, list<string>> | ||||
|      */ | ||||
|     private static array $formattedSourceCache = []; | ||||
|     private int $htmlSpecialCharsFlags         = ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE; | ||||
|  | ||||
|     public function render(FileNode $node, string $file): void | ||||
|     { | ||||
| @@ -324,9 +314,6 @@ final class File extends Renderer | ||||
|         return $items; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedClassType|ProcessedTraitType> $items | ||||
|      */ | ||||
|     private function renderTraitOrClassItems(array $items, Template $template, Template $methodItemTemplate): string | ||||
|     { | ||||
|         $buffer = ''; | ||||
| @@ -431,9 +418,6 @@ final class File extends Renderer | ||||
|         return $buffer; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, ProcessedFunctionType> $functions | ||||
|      */ | ||||
|     private function renderFunctionItems(array $functions, Template $template): string | ||||
|     { | ||||
|         if (empty($functions)) { | ||||
| @@ -452,9 +436,6 @@ final class File extends Renderer | ||||
|         return $buffer; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param ProcessedFunctionType|ProcessedMethodType $item | ||||
|      */ | ||||
|     private function renderFunctionOrMethodItem(Template $template, array $item, string $indent = ''): string | ||||
|     { | ||||
|         $numMethods       = 0; | ||||
| @@ -495,7 +476,7 @@ final class File extends Renderer | ||||
|                     '%s<a href="#%d"><abbr title="%s">%s</abbr></a>', | ||||
|                     $indent, | ||||
|                     $item['startLine'], | ||||
|                     htmlspecialchars($item['signature'], self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                     htmlspecialchars($item['signature'], $this->htmlSpecialCharsFlags), | ||||
|                     $item['functionName'] ?? $item['methodName'], | ||||
|                 ), | ||||
|                 'numMethods'                      => $numMethods, | ||||
| @@ -573,7 +554,7 @@ final class File extends Renderer | ||||
|                 $popover = sprintf( | ||||
|                     ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', | ||||
|                     $popoverTitle, | ||||
|                     htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                     htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
| @@ -660,7 +641,7 @@ final class File extends Renderer | ||||
|                 $popover = sprintf( | ||||
|                     ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', | ||||
|                     $popoverTitle, | ||||
|                     htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                     htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
| @@ -750,7 +731,7 @@ final class File extends Renderer | ||||
|                 $popover = sprintf( | ||||
|                     ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', | ||||
|                     $popoverTitle, | ||||
|                     htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                     htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
| @@ -787,7 +768,7 @@ final class File extends Renderer | ||||
|             } | ||||
|  | ||||
|             if ($branchStructure !== '') { // don't show empty branches | ||||
|                 $branches .= '<h5 class="structure-heading"><a name="' . htmlspecialchars($methodName, self::HTML_SPECIAL_CHARS_FLAGS) . '">' . $this->abbreviateMethodName($methodName) . '</a></h5>' . "\n"; | ||||
|                 $branches .= '<h5 class="structure-heading"><a name="' . htmlspecialchars($methodName, $this->htmlSpecialCharsFlags) . '">' . $this->abbreviateMethodName($methodName) . '</a></h5>' . "\n"; | ||||
|                 $branches .= $branchStructure; | ||||
|             } | ||||
|         } | ||||
| @@ -797,9 +778,6 @@ final class File extends Renderer | ||||
|         return $branchesTemplate->render(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param list<string> $codeLines | ||||
|      */ | ||||
|     private function renderBranchLines(array $branch, array $codeLines, array $testData): string | ||||
|     { | ||||
|         $linesTemplate      = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); | ||||
| @@ -851,7 +829,7 @@ final class File extends Renderer | ||||
|                 $popover = sprintf( | ||||
|                     ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', | ||||
|                     $popoverTitle, | ||||
|                     htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                     htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
| @@ -896,7 +874,7 @@ final class File extends Renderer | ||||
|             } | ||||
|  | ||||
|             if ($pathStructure !== '') { | ||||
|                 $paths .= '<h5 class="structure-heading"><a name="' . htmlspecialchars($methodName, self::HTML_SPECIAL_CHARS_FLAGS) . '">' . $this->abbreviateMethodName($methodName) . '</a></h5>' . "\n"; | ||||
|                 $paths .= '<h5 class="structure-heading"><a name="' . htmlspecialchars($methodName, $this->htmlSpecialCharsFlags) . '">' . $this->abbreviateMethodName($methodName) . '</a></h5>' . "\n"; | ||||
|                 $paths .= $pathStructure; | ||||
|             } | ||||
|         } | ||||
| @@ -906,9 +884,6 @@ final class File extends Renderer | ||||
|         return $pathsTemplate->render(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param list<string> $codeLines | ||||
|      */ | ||||
|     private function renderPathLines(array $path, array $branches, array $codeLines, array $testData): string | ||||
|     { | ||||
|         $linesTemplate      = new Template($this->templatePath . 'lines.html.dist', '{{', '}}'); | ||||
| @@ -969,7 +944,7 @@ final class File extends Renderer | ||||
|                     $popover = sprintf( | ||||
|                         ' data-bs-title="%s" data-bs-content="%s" data-bs-placement="top" data-bs-html="true"', | ||||
|                         $popoverTitle, | ||||
|                         htmlspecialchars($popoverContent, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                         htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags), | ||||
|                     ); | ||||
|                 } | ||||
|  | ||||
| @@ -990,7 +965,7 @@ final class File extends Renderer | ||||
|     { | ||||
|         $template->setVar( | ||||
|             [ | ||||
|                 'lineNumber'  => (string) $lineNumber, | ||||
|                 'lineNumber'  => $lineNumber, | ||||
|                 'lineContent' => $lineContent, | ||||
|                 'class'       => $class, | ||||
|                 'popover'     => $popover, | ||||
| @@ -1000,11 +975,6 @@ final class File extends Renderer | ||||
|         return $template->render(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $file | ||||
|      * | ||||
|      * @return list<string> | ||||
|      */ | ||||
|     private function loadFile(string $file): array | ||||
|     { | ||||
|         if (isset(self::$formattedSourceCache[$file])) { | ||||
| @@ -1025,14 +995,14 @@ final class File extends Renderer | ||||
|                 if ($token === '"' && $tokens[$j - 1] !== '\\') { | ||||
|                     $result[$i] .= sprintf( | ||||
|                         '<span class="string">%s</span>', | ||||
|                         htmlspecialchars($token, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                         htmlspecialchars($token, $this->htmlSpecialCharsFlags), | ||||
|                     ); | ||||
|  | ||||
|                     $stringFlag = !$stringFlag; | ||||
|                 } else { | ||||
|                     $result[$i] .= sprintf( | ||||
|                         '<span class="keyword">%s</span>', | ||||
|                         htmlspecialchars($token, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                         htmlspecialchars($token, $this->htmlSpecialCharsFlags), | ||||
|                     ); | ||||
|                 } | ||||
|  | ||||
| @@ -1044,7 +1014,7 @@ final class File extends Renderer | ||||
|             $value = str_replace( | ||||
|                 ["\t", ' '], | ||||
|                 ['    ', ' '], | ||||
|                 htmlspecialchars($value, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|                 htmlspecialchars($value, $this->htmlSpecialCharsFlags), | ||||
|             ); | ||||
|  | ||||
|             if ($value === "\n") { | ||||
| @@ -1143,7 +1113,7 @@ final class File extends Renderer | ||||
|         return sprintf( | ||||
|             '<li%s>%s</li>', | ||||
|             $testCSS, | ||||
|             htmlspecialchars($test, self::HTML_SPECIAL_CHARS_FLAGS), | ||||
|             htmlspecialchars($test, $this->htmlSpecialCharsFlags), | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -26,27 +26,27 @@ final class Text | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private const string COLOR_GREEN = "\x1b[30;42m"; | ||||
|     private const COLOR_GREEN = "\x1b[30;42m"; | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private const string COLOR_YELLOW = "\x1b[30;43m"; | ||||
|     private const COLOR_YELLOW = "\x1b[30;43m"; | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private const string COLOR_RED = "\x1b[37;41m"; | ||||
|     private const COLOR_RED = "\x1b[37;41m"; | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private const string COLOR_HEADER = "\x1b[1;37;40m"; | ||||
|     private const COLOR_HEADER = "\x1b[1;37;40m"; | ||||
|  | ||||
|     /** | ||||
|      * @var string | ||||
|      */ | ||||
|     private const string COLOR_RESET = "\x1b[0m"; | ||||
|     private const COLOR_RESET = "\x1b[0m"; | ||||
|     private readonly Thresholds $thresholds; | ||||
|     private readonly bool $showUncoveredFiles; | ||||
|     private readonly bool $showOnlySummary; | ||||
|   | ||||
| @@ -14,10 +14,10 @@ use SebastianBergmann\CodeCoverage\InvalidArgumentException; | ||||
| /** | ||||
|  * @immutable | ||||
|  */ | ||||
| final readonly class Thresholds | ||||
| final class Thresholds | ||||
| { | ||||
|     private int $lowUpperBound; | ||||
|     private int $highLowerBound; | ||||
|     private readonly int $lowUpperBound; | ||||
|     private readonly int $highLowerBound; | ||||
|  | ||||
|     public static function default(): self | ||||
|     { | ||||
|   | ||||
| @@ -18,9 +18,9 @@ use SebastianBergmann\Environment\Runtime; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class BuildInformation | ||||
| final class BuildInformation | ||||
| { | ||||
|     private DOMElement $contextNode; | ||||
|     private readonly DOMElement $contextNode; | ||||
|  | ||||
|     public function __construct(DOMElement $contextNode) | ||||
|     { | ||||
|   | ||||
| @@ -32,19 +32,12 @@ use SebastianBergmann\CodeCoverage\Driver\PathExistsButIsNotDirectoryException; | ||||
| use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException; | ||||
| use SebastianBergmann\CodeCoverage\Node\AbstractNode; | ||||
| use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; | ||||
| use SebastianBergmann\CodeCoverage\Node\File; | ||||
| use SebastianBergmann\CodeCoverage\Node\File as FileNode; | ||||
| use SebastianBergmann\CodeCoverage\Util\Filesystem as DirectoryUtil; | ||||
| use SebastianBergmann\CodeCoverage\Version; | ||||
| use SebastianBergmann\CodeCoverage\XmlException; | ||||
| use SebastianBergmann\Environment\Runtime; | ||||
|  | ||||
| /** | ||||
|  * @phpstan-import-type ProcessedClassType from File | ||||
|  * @phpstan-import-type ProcessedTraitType from File | ||||
|  * @phpstan-import-type ProcessedFunctionType from File | ||||
|  * @phpstan-import-type TestType from CodeCoverage | ||||
|  */ | ||||
| final class Facade | ||||
| { | ||||
|     private string $target; | ||||
| @@ -182,9 +175,6 @@ final class Facade | ||||
|         $this->saveDocument($fileReport->asDom(), $file->id()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param ProcessedClassType|ProcessedTraitType $unit | ||||
|      */ | ||||
|     private function processUnit(array $unit, Report $report): void | ||||
|     { | ||||
|         if (isset($unit['className'])) { | ||||
| @@ -215,9 +205,6 @@ final class Facade | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param ProcessedFunctionType $function | ||||
|      */ | ||||
|     private function processFunction(array $function, Report $report): void | ||||
|     { | ||||
|         $functionObject = $report->functionObject($function['functionName']); | ||||
| @@ -228,9 +215,6 @@ final class Facade | ||||
|         $functionObject->setTotals((string) $function['executableLines'], (string) $function['executedLines'], (string) $function['coverage']); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param array<string, TestType> $tests | ||||
|      */ | ||||
|     private function processTests(array $tests): void | ||||
|     { | ||||
|         $testsObject = $this->project->tests(); | ||||
| @@ -245,9 +229,9 @@ final class Facade | ||||
|         $loc = $node->linesOfCode(); | ||||
|  | ||||
|         $totals->setNumLines( | ||||
|             $loc->linesOfCode(), | ||||
|             $loc->commentLinesOfCode(), | ||||
|             $loc->nonCommentLinesOfCode(), | ||||
|             $loc['linesOfCode'], | ||||
|             $loc['commentLinesOfCode'], | ||||
|             $loc['nonCommentLinesOfCode'], | ||||
|             $node->numberOfExecutableLines(), | ||||
|             $node->numberOfExecutedLines(), | ||||
|         ); | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Report\Xml; | ||||
|  | ||||
| use function assert; | ||||
| use DOMDocument; | ||||
| use DOMElement; | ||||
|  | ||||
| @@ -40,8 +39,6 @@ class File | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         assert($totalsContainer instanceof DOMElement); | ||||
|  | ||||
|         return new Totals($totalsContainer); | ||||
|     } | ||||
|  | ||||
| @@ -68,8 +65,6 @@ class File | ||||
|             ), | ||||
|         ); | ||||
|  | ||||
|         assert($lineNode instanceof DOMElement); | ||||
|  | ||||
|         return new Coverage($lineNode, $line); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -14,9 +14,9 @@ use DOMElement; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Method | ||||
| final class Method | ||||
| { | ||||
|     private DOMElement $contextNode; | ||||
|     private readonly DOMElement $contextNode; | ||||
|  | ||||
|     public function __construct(DOMElement $context, string $name) | ||||
|     { | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Report\Xml; | ||||
|  | ||||
| use function assert; | ||||
| use DOMDocument; | ||||
| use DOMElement; | ||||
|  | ||||
| @@ -44,8 +43,6 @@ abstract class Node | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         assert($totalsContainer instanceof DOMElement); | ||||
|  | ||||
|         return new Totals($totalsContainer); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -9,9 +9,7 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Report\Xml; | ||||
|  | ||||
| use function assert; | ||||
| use DOMDocument; | ||||
| use DOMElement; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
| @@ -45,8 +43,6 @@ final class Project extends Node | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         assert($buildNode instanceof DOMElement); | ||||
|  | ||||
|         return new BuildInformation($buildNode); | ||||
|     } | ||||
|  | ||||
| @@ -66,8 +62,6 @@ final class Project extends Node | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         assert($testsNode instanceof DOMElement); | ||||
|  | ||||
|         return new Tests($testsNode); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -9,11 +9,9 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Report\Xml; | ||||
|  | ||||
| use function assert; | ||||
| use function basename; | ||||
| use function dirname; | ||||
| use DOMDocument; | ||||
| use DOMElement; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
| @@ -40,7 +38,7 @@ final class Report extends File | ||||
|         return $this->dom(); | ||||
|     } | ||||
|  | ||||
|     public function functionObject(string $name): Method | ||||
|     public function functionObject($name): Method | ||||
|     { | ||||
|         $node = $this->contextNode()->appendChild( | ||||
|             $this->dom()->createElementNS( | ||||
| @@ -49,17 +47,15 @@ final class Report extends File | ||||
|             ), | ||||
|         ); | ||||
|  | ||||
|         assert($node instanceof DOMElement); | ||||
|  | ||||
|         return new Method($node, $name); | ||||
|     } | ||||
|  | ||||
|     public function classObject(string $name): Unit | ||||
|     public function classObject($name): Unit | ||||
|     { | ||||
|         return $this->unitObject('class', $name); | ||||
|     } | ||||
|  | ||||
|     public function traitObject(string $name): Unit | ||||
|     public function traitObject($name): Unit | ||||
|     { | ||||
|         return $this->unitObject('trait', $name); | ||||
|     } | ||||
| @@ -80,8 +76,6 @@ final class Report extends File | ||||
|             ); | ||||
|         } | ||||
|  | ||||
|         assert($source instanceof DOMElement); | ||||
|  | ||||
|         return new Source($source); | ||||
|     } | ||||
|  | ||||
| @@ -91,7 +85,7 @@ final class Report extends File | ||||
|         $this->contextNode()->setAttribute('path', dirname($name)); | ||||
|     } | ||||
|  | ||||
|     private function unitObject(string $tagName, string $name): Unit | ||||
|     private function unitObject(string $tagName, $name): Unit | ||||
|     { | ||||
|         $node = $this->contextNode()->appendChild( | ||||
|             $this->dom()->createElementNS( | ||||
| @@ -100,8 +94,6 @@ final class Report extends File | ||||
|             ), | ||||
|         ); | ||||
|  | ||||
|         assert($node instanceof DOMElement); | ||||
|  | ||||
|         return new Unit($node, $name); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -17,9 +17,9 @@ use TheSeer\Tokenizer\XMLSerializer; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Source | ||||
| final class Source | ||||
| { | ||||
|     private DOMElement $context; | ||||
|     private readonly DOMElement $context; | ||||
|  | ||||
|     public function __construct(DOMElement $context) | ||||
|     { | ||||
|   | ||||
| @@ -11,16 +11,15 @@ namespace SebastianBergmann\CodeCoverage\Report\Xml; | ||||
|  | ||||
| use function assert; | ||||
| use DOMElement; | ||||
| use SebastianBergmann\CodeCoverage\CodeCoverage; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type TestType from CodeCoverage | ||||
|  * @phpstan-import-type TestType from \SebastianBergmann\CodeCoverage\CodeCoverage | ||||
|  */ | ||||
| final readonly class Tests | ||||
| final class Tests | ||||
| { | ||||
|     private DOMElement $contextNode; | ||||
|     private readonly DOMElement $contextNode; | ||||
|  | ||||
|     public function __construct(DOMElement $context) | ||||
|     { | ||||
|   | ||||
| @@ -17,14 +17,14 @@ use SebastianBergmann\CodeCoverage\Util\Percentage; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Totals | ||||
| final class Totals | ||||
| { | ||||
|     private DOMNode $container; | ||||
|     private DOMElement $linesNode; | ||||
|     private DOMElement $methodsNode; | ||||
|     private DOMElement $functionsNode; | ||||
|     private DOMElement $classesNode; | ||||
|     private DOMElement $traitsNode; | ||||
|     private readonly DOMNode $container; | ||||
|     private readonly DOMElement $linesNode; | ||||
|     private readonly DOMElement $methodsNode; | ||||
|     private readonly DOMElement $functionsNode; | ||||
|     private readonly DOMElement $classesNode; | ||||
|     private readonly DOMElement $traitsNode; | ||||
|  | ||||
|     public function __construct(DOMElement $container) | ||||
|     { | ||||
|   | ||||
| @@ -15,9 +15,9 @@ use DOMElement; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Unit | ||||
| final class Unit | ||||
| { | ||||
|     private DOMElement $contextNode; | ||||
|     private readonly DOMElement $contextNode; | ||||
|  | ||||
|     public function __construct(DOMElement $context, string $name) | ||||
|     { | ||||
| @@ -68,8 +68,6 @@ final readonly class Unit | ||||
|             ), | ||||
|         ); | ||||
|  | ||||
|         assert($node instanceof DOMElement); | ||||
|  | ||||
|         return new Method($node, $name); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -23,17 +23,12 @@ use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-type CachedDataForFile array{ | ||||
|  *   interfacesIn: array<string, Interface_>, | ||||
|  *   classesIn: array<string, Class_>, | ||||
|  *   traitsIn: array<string, Trait_>, | ||||
|  *   functionsIn: array<string, Function_>, | ||||
|  *   linesOfCodeFor: LinesOfCode, | ||||
|  *   ignoredLinesFor: LinesType, | ||||
|  *   executableLinesIn: LinesType | ||||
|  * } | ||||
|  * | ||||
|  * @phpstan-import-type LinesType from FileAnalyser | ||||
|  * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  */ | ||||
| final class CachingFileAnalyser implements FileAnalyser | ||||
| { | ||||
| @@ -42,10 +37,6 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|     private readonly FileAnalyser $analyser; | ||||
|     private readonly bool $useAnnotationsForIgnoringCode; | ||||
|     private readonly bool $ignoreDeprecatedCode; | ||||
|  | ||||
|     /** | ||||
|      * @var array<non-empty-string, CachedDataForFile> | ||||
|      */ | ||||
|     private array $cache = []; | ||||
|  | ||||
|     public function __construct(string $directory, FileAnalyser $analyser, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode) | ||||
| @@ -59,19 +50,7 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Interface_> | ||||
|      */ | ||||
|     public function interfacesIn(string $filename): array | ||||
|     { | ||||
|         if (!isset($this->cache[$filename])) { | ||||
|             $this->process($filename); | ||||
|         } | ||||
|  | ||||
|         return $this->cache[$filename]['interfacesIn']; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Class_> | ||||
|      * @return array<string, CodeUnitClassType> | ||||
|      */ | ||||
|     public function classesIn(string $filename): array | ||||
|     { | ||||
| @@ -83,7 +62,7 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Trait_> | ||||
|      * @return array<string, CodeUnitTraitType> | ||||
|      */ | ||||
|     public function traitsIn(string $filename): array | ||||
|     { | ||||
| @@ -95,7 +74,7 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Function_> | ||||
|      * @return array<string, CodeUnitFunctionType> | ||||
|      */ | ||||
|     public function functionsIn(string $filename): array | ||||
|     { | ||||
| @@ -106,7 +85,10 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|         return $this->cache[$filename]['functionsIn']; | ||||
|     } | ||||
|  | ||||
|     public function linesOfCodeFor(string $filename): LinesOfCode | ||||
|     /** | ||||
|      * @return LinesOfCodeType | ||||
|      */ | ||||
|     public function linesOfCodeFor(string $filename): array | ||||
|     { | ||||
|         if (!isset($this->cache[$filename])) { | ||||
|             $this->process($filename); | ||||
| @@ -150,7 +132,6 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|         } | ||||
|  | ||||
|         $this->cache[$filename] = [ | ||||
|             'interfacesIn'      => $this->analyser->interfacesIn($filename), | ||||
|             'classesIn'         => $this->analyser->classesIn($filename), | ||||
|             'traitsIn'          => $this->analyser->traitsIn($filename), | ||||
|             'functionsIn'       => $this->analyser->functionsIn($filename), | ||||
| @@ -162,9 +143,6 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|         $this->write($filename, $this->cache[$filename]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return CachedDataForFile|false | ||||
|      */ | ||||
|     private function read(string $filename): array|false | ||||
|     { | ||||
|         $cacheFile = $this->cacheFile($filename); | ||||
| @@ -175,22 +153,10 @@ final class CachingFileAnalyser implements FileAnalyser | ||||
|  | ||||
|         return unserialize( | ||||
|             file_get_contents($cacheFile), | ||||
|             [ | ||||
|                 'allowed_classes' => [ | ||||
|                     Class_::class, | ||||
|                     Function_::class, | ||||
|                     Interface_::class, | ||||
|                     LinesOfCode::class, | ||||
|                     Method::class, | ||||
|                     Trait_::class, | ||||
|                 ], | ||||
|             ], | ||||
|             ['allowed_classes' => false], | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param CachedDataForFile $data | ||||
|      */ | ||||
|     private function write(string $filename, array $data): void | ||||
|     { | ||||
|         file_put_contents( | ||||
|   | ||||
| @@ -21,6 +21,7 @@ use PhpParser\Node\Name; | ||||
| use PhpParser\Node\NullableType; | ||||
| use PhpParser\Node\Stmt\Class_; | ||||
| use PhpParser\Node\Stmt\ClassMethod; | ||||
| use PhpParser\Node\Stmt\Enum_; | ||||
| use PhpParser\Node\Stmt\Function_; | ||||
| use PhpParser\Node\Stmt\Interface_; | ||||
| use PhpParser\Node\Stmt\Trait_; | ||||
| @@ -31,51 +32,63 @@ use SebastianBergmann\Complexity\CyclomaticComplexityCalculatingVisitor; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-type CodeUnitFunctionType = array{ | ||||
|  *     name: string, | ||||
|  *     namespacedName: string, | ||||
|  *     namespace: string, | ||||
|  *     signature: string, | ||||
|  *     startLine: int, | ||||
|  *     endLine: int, | ||||
|  *     ccn: int | ||||
|  * } | ||||
|  * @phpstan-type CodeUnitMethodType = array{ | ||||
|  *     methodName: string, | ||||
|  *     signature: string, | ||||
|  *     visibility: string, | ||||
|  *     startLine: int, | ||||
|  *     endLine: int, | ||||
|  *     ccn: int | ||||
|  * } | ||||
|  * @phpstan-type CodeUnitClassType = array{ | ||||
|  *     name: string, | ||||
|  *     namespacedName: string, | ||||
|  *     namespace: string, | ||||
|  *     startLine: int, | ||||
|  *     endLine: int, | ||||
|  *     methods: array<string, CodeUnitMethodType> | ||||
|  * } | ||||
|  * @phpstan-type CodeUnitTraitType = array{ | ||||
|  *     name: string, | ||||
|  *     namespacedName: string, | ||||
|  *     namespace: string, | ||||
|  *     startLine: int, | ||||
|  *     endLine: int, | ||||
|  *     methods: array<string, CodeUnitMethodType> | ||||
|  * } | ||||
|  */ | ||||
| final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $file; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Interface_> | ||||
|      */ | ||||
|     private array $interfaces = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_> | ||||
|      * @var array<string, CodeUnitClassType> | ||||
|      */ | ||||
|     private array $classes = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_> | ||||
|      * @var array<string, CodeUnitTraitType> | ||||
|      */ | ||||
|     private array $traits = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Function_> | ||||
|      * @var array<string, CodeUnitFunctionType> | ||||
|      */ | ||||
|     private array $functions = []; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $file | ||||
|      */ | ||||
|     public function __construct(string $file) | ||||
|     public function enterNode(Node $node): void | ||||
|     { | ||||
|         $this->file = $file; | ||||
|     } | ||||
|  | ||||
|     public function enterNode(Node $node): null | ||||
|     { | ||||
|         if ($node instanceof Interface_) { | ||||
|             $this->processInterface($node); | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Class_) { | ||||
|             if ($node->isAnonymous()) { | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $this->processClass($node); | ||||
| @@ -85,52 +98,27 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|             $this->processTrait($node); | ||||
|         } | ||||
|  | ||||
|         if (!$node instanceof Function_) { | ||||
|             return null; | ||||
|         if (!$node instanceof ClassMethod && !$node instanceof Function_) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof ClassMethod) { | ||||
|             $parentNode = $node->getAttribute('parent'); | ||||
|  | ||||
|             if ($parentNode instanceof Class_ && $parentNode->isAnonymous()) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $this->processMethod($node); | ||||
|  | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $this->processFunction($node); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function leaveNode(Node $node): null | ||||
|     { | ||||
|         if ($node instanceof Class_ && $node->isAnonymous()) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         if (!$node instanceof Class_ && !$node instanceof Trait_) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         $traits = []; | ||||
|  | ||||
|         foreach ($node->getTraitUses() as $traitUse) { | ||||
|             foreach ($traitUse->traits as $trait) { | ||||
|                 $traits[] = $trait->toString(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (empty($traits)) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         $this->postProcessClassOrTrait($node, $traits); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Interface_> | ||||
|      */ | ||||
|     public function interfaces(): array | ||||
|     { | ||||
|         return $this->interfaces; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_> | ||||
|      * @return array<string, CodeUnitClassType> | ||||
|      */ | ||||
|     public function classes(): array | ||||
|     { | ||||
| @@ -138,7 +126,7 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_> | ||||
|      * @return array<string, CodeUnitTraitType> | ||||
|      */ | ||||
|     public function traits(): array | ||||
|     { | ||||
| @@ -146,7 +134,7 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, \SebastianBergmann\CodeCoverage\StaticAnalysis\Function_> | ||||
|      * @return array<string, CodeUnitFunctionType> | ||||
|      */ | ||||
|     public function functions(): array | ||||
|     { | ||||
| @@ -222,66 +210,32 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|         return $type->toString(); | ||||
|     } | ||||
|  | ||||
|     private function visibility(ClassMethod $node): Visibility | ||||
|     private function visibility(ClassMethod $node): string | ||||
|     { | ||||
|         if ($node->isPrivate()) { | ||||
|             return Visibility::Private; | ||||
|             return 'private'; | ||||
|         } | ||||
|  | ||||
|         if ($node->isProtected()) { | ||||
|             return Visibility::Protected; | ||||
|             return 'protected'; | ||||
|         } | ||||
|  | ||||
|         return Visibility::Public; | ||||
|     } | ||||
|  | ||||
|     private function processInterface(Interface_ $node): void | ||||
|     { | ||||
|         $name             = $node->name->toString(); | ||||
|         $namespacedName   = $node->namespacedName->toString(); | ||||
|         $parentInterfaces = []; | ||||
|  | ||||
|         foreach ($node->extends as $parentInterface) { | ||||
|             $parentInterfaces[] = $parentInterface->toString(); | ||||
|         } | ||||
|  | ||||
|         $this->interfaces[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Interface_( | ||||
|             $name, | ||||
|             $namespacedName, | ||||
|             $this->namespace($namespacedName, $name), | ||||
|             $node->getStartLine(), | ||||
|             $node->getEndLine(), | ||||
|             $parentInterfaces, | ||||
|         ); | ||||
|         return 'public'; | ||||
|     } | ||||
|  | ||||
|     private function processClass(Class_ $node): void | ||||
|     { | ||||
|         $name           = $node->name->toString(); | ||||
|         $namespacedName = $node->namespacedName->toString(); | ||||
|         $parentClass    = null; | ||||
|         $interfaces     = []; | ||||
|  | ||||
|         if ($node->extends instanceof Name) { | ||||
|             $parentClass = $node->extends->toString(); | ||||
|         } | ||||
|  | ||||
|         foreach ($node->implements as $interface) { | ||||
|             $interfaces[] = $interface->toString(); | ||||
|         } | ||||
|  | ||||
|         $this->classes[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_( | ||||
|             $name, | ||||
|             $namespacedName, | ||||
|             $this->namespace($namespacedName, $name), | ||||
|             $this->file, | ||||
|             $node->getStartLine(), | ||||
|             $node->getEndLine(), | ||||
|             $parentClass, | ||||
|             $interfaces, | ||||
|             [], | ||||
|             $this->processMethods($node->getMethods()), | ||||
|         ); | ||||
|         $this->classes[$namespacedName] = [ | ||||
|             'name'           => $name, | ||||
|             'namespacedName' => $namespacedName, | ||||
|             'namespace'      => $this->namespace($namespacedName, $name), | ||||
|             'startLine'      => $node->getStartLine(), | ||||
|             'endLine'        => $node->getEndLine(), | ||||
|             'methods'        => [], | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     private function processTrait(Trait_ $node): void | ||||
| @@ -289,39 +243,57 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|         $name           = $node->name->toString(); | ||||
|         $namespacedName = $node->namespacedName->toString(); | ||||
|  | ||||
|         $this->traits[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_( | ||||
|             $name, | ||||
|             $namespacedName, | ||||
|             $this->namespace($namespacedName, $name), | ||||
|             $this->file, | ||||
|             $node->getStartLine(), | ||||
|             $node->getEndLine(), | ||||
|             [], | ||||
|             $this->processMethods($node->getMethods()), | ||||
|         ); | ||||
|         $this->traits[$namespacedName] = [ | ||||
|             'name'           => $name, | ||||
|             'namespacedName' => $namespacedName, | ||||
|             'namespace'      => $this->namespace($namespacedName, $name), | ||||
|             'startLine'      => $node->getStartLine(), | ||||
|             'endLine'        => $node->getEndLine(), | ||||
|             'methods'        => [], | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param list<ClassMethod> $nodes | ||||
|      * | ||||
|      * @return array<non-empty-string, Method> | ||||
|      */ | ||||
|     private function processMethods(array $nodes): array | ||||
|     private function processMethod(ClassMethod $node): void | ||||
|     { | ||||
|         $methods = []; | ||||
|         $parentNode = $node->getAttribute('parent'); | ||||
|  | ||||
|         foreach ($nodes as $node) { | ||||
|             $methods[$node->name->toString()] = new Method( | ||||
|                 $node->name->toString(), | ||||
|                 $node->getStartLine(), | ||||
|                 $node->getEndLine(), | ||||
|                 $this->signature($node), | ||||
|                 $this->visibility($node), | ||||
|                 $this->cyclomaticComplexity($node), | ||||
|             ); | ||||
|         if ($parentNode instanceof Interface_) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         return $methods; | ||||
|         assert($parentNode instanceof Class_ || $parentNode instanceof Trait_ || $parentNode instanceof Enum_); | ||||
|         assert(isset($parentNode->name)); | ||||
|         assert(isset($parentNode->namespacedName)); | ||||
|         assert($parentNode->namespacedName instanceof Name); | ||||
|  | ||||
|         $parentName           = $parentNode->name->toString(); | ||||
|         $parentNamespacedName = $parentNode->namespacedName->toString(); | ||||
|  | ||||
|         if ($parentNode instanceof Class_) { | ||||
|             $storage = &$this->classes; | ||||
|         } else { | ||||
|             $storage = &$this->traits; | ||||
|         } | ||||
|  | ||||
|         if (!isset($storage[$parentNamespacedName])) { | ||||
|             $storage[$parentNamespacedName] = [ | ||||
|                 'name'           => $parentName, | ||||
|                 'namespacedName' => $parentNamespacedName, | ||||
|                 'namespace'      => $this->namespace($parentNamespacedName, $parentName), | ||||
|                 'startLine'      => $parentNode->getStartLine(), | ||||
|                 'endLine'        => $parentNode->getEndLine(), | ||||
|                 'methods'        => [], | ||||
|             ]; | ||||
|         } | ||||
|  | ||||
|         $storage[$parentNamespacedName]['methods'][$node->name->toString()] = [ | ||||
|             'methodName' => $node->name->toString(), | ||||
|             'signature'  => $this->signature($node), | ||||
|             'visibility' => $this->visibility($node), | ||||
|             'startLine'  => $node->getStartLine(), | ||||
|             'endLine'    => $node->getEndLine(), | ||||
|             'ccn'        => $this->cyclomaticComplexity($node), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     private function processFunction(Function_ $node): void | ||||
| @@ -333,15 +305,15 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|         $name           = $node->name->toString(); | ||||
|         $namespacedName = $node->namespacedName->toString(); | ||||
|  | ||||
|         $this->functions[$namespacedName] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Function_( | ||||
|             $name, | ||||
|             $namespacedName, | ||||
|             $this->namespace($namespacedName, $name), | ||||
|             $node->getStartLine(), | ||||
|             $node->getEndLine(), | ||||
|             $this->signature($node), | ||||
|             $this->cyclomaticComplexity($node), | ||||
|         ); | ||||
|         $this->functions[$namespacedName] = [ | ||||
|             'name'           => $name, | ||||
|             'namespacedName' => $namespacedName, | ||||
|             'namespace'      => $this->namespace($namespacedName, $name), | ||||
|             'signature'      => $this->signature($node), | ||||
|             'startLine'      => $node->getStartLine(), | ||||
|             'endLine'        => $node->getEndLine(), | ||||
|             'ccn'            => $this->cyclomaticComplexity($node), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     private function namespace(string $namespacedName, string $name): string | ||||
| @@ -385,44 +357,4 @@ final class CodeUnitFindingVisitor extends NodeVisitorAbstract | ||||
|  | ||||
|         return $node->toString(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param list<non-empty-string> $traits | ||||
|      */ | ||||
|     private function postProcessClassOrTrait(Class_|Trait_ $node, array $traits): void | ||||
|     { | ||||
|         $name = $node->namespacedName->toString(); | ||||
|  | ||||
|         if ($node instanceof Class_) { | ||||
|             assert(isset($this->classes[$name])); | ||||
|  | ||||
|             $this->classes[$name] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Class_( | ||||
|                 $this->classes[$name]->name(), | ||||
|                 $this->classes[$name]->namespacedName(), | ||||
|                 $this->classes[$name]->namespace(), | ||||
|                 $this->classes[$name]->file(), | ||||
|                 $this->classes[$name]->startLine(), | ||||
|                 $this->classes[$name]->endLine(), | ||||
|                 $this->classes[$name]->parentClass(), | ||||
|                 $this->classes[$name]->interfaces(), | ||||
|                 $traits, | ||||
|                 $this->classes[$name]->methods(), | ||||
|             ); | ||||
|  | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         assert(isset($this->traits[$name])); | ||||
|  | ||||
|         $this->traits[$name] = new \SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_( | ||||
|             $this->traits[$name]->name(), | ||||
|             $this->traits[$name]->namespacedName(), | ||||
|             $this->traits[$name]->namespace(), | ||||
|             $this->traits[$name]->file(), | ||||
|             $this->traits[$name]->startLine(), | ||||
|             $this->traits[$name]->endLine(), | ||||
|             $traits, | ||||
|             $this->traits[$name]->methods(), | ||||
|         ); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ use PhpParser\NodeVisitorAbstract; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type LinesType from FileAnalyser | ||||
|  * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  */ | ||||
| final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
| { | ||||
| @@ -54,7 +54,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|         $this->source = $source; | ||||
|     } | ||||
|  | ||||
|     public function enterNode(Node $node): null | ||||
|     public function enterNode(Node $node): void | ||||
|     { | ||||
|         foreach ($node->getComments() as $comment) { | ||||
|             $commentLine = $comment->getStartLine(); | ||||
| @@ -80,7 +80,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Interface_) { | ||||
| @@ -88,7 +88,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 $this->unsets[$line] = true; | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Declare_ || | ||||
| @@ -113,7 +113,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             $node instanceof Node\Name || | ||||
|             $node instanceof Node\Param || | ||||
|             $node instanceof Node\Scalar) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Expr\Match_) { | ||||
| @@ -125,13 +125,13 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Expression && $node->expr instanceof Node\Expr\Throw_) { | ||||
|             $this->setLineBranch($node->expr->expr->getEndLine(), $node->expr->expr->getEndLine(), ++$this->nextBranch); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Enum_ || | ||||
| @@ -176,7 +176,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             } | ||||
|  | ||||
|             if ($isConcreteClassLike) { | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $hasEmptyBody = [] === $node->stmts || | ||||
| @@ -188,15 +188,15 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|  | ||||
|             if ($hasEmptyBody) { | ||||
|                 if ($node->getEndLine() === $node->getStartLine() && isset($this->executableLinesGroupedByBranch[$node->getStartLine()])) { | ||||
|                     return null; | ||||
|                     return; | ||||
|                 } | ||||
|  | ||||
|                 $this->setLineBranch($node->getEndLine(), $node->getEndLine(), ++$this->nextBranch); | ||||
|  | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Expr\ArrowFunction) { | ||||
| @@ -208,12 +208,12 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             $endLine = $node->expr->getEndLine(); | ||||
|  | ||||
|             if ($endLine < $startLine) { | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $this->setLineBranch($startLine, $endLine, ++$this->nextBranch); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Expr\Ternary) { | ||||
| @@ -226,7 +226,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 $this->setLineBranch($node->else->getStartLine(), $node->else->getEndLine(), ++$this->nextBranch); | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Expr\BinaryOp\Coalesce) { | ||||
| @@ -234,14 +234,14 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 $this->setLineBranch($node->getEndLine(), $node->getEndLine(), ++$this->nextBranch); | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\If_ || | ||||
|             $node instanceof Node\Stmt\ElseIf_ || | ||||
|             $node instanceof Node\Stmt\Case_) { | ||||
|             if (null === $node->cond) { | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $this->setLineBranch( | ||||
| @@ -250,7 +250,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ++$this->nextBranch, | ||||
|             ); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\For_) { | ||||
| @@ -292,7 +292,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             } | ||||
|  | ||||
|             if (null === $startLine || null === $endLine) { | ||||
|                 return null; | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $this->setLineBranch( | ||||
| @@ -301,7 +301,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ++$this->nextBranch, | ||||
|             ); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Foreach_) { | ||||
| @@ -311,7 +311,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ++$this->nextBranch, | ||||
|             ); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\While_ || | ||||
| @@ -322,7 +322,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ++$this->nextBranch, | ||||
|             ); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Stmt\Catch_) { | ||||
| @@ -337,7 +337,7 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 ++$this->nextBranch, | ||||
|             ); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Node\Expr\CallLike) { | ||||
| @@ -349,19 +349,17 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|  | ||||
|             $this->setLineBranch($node->getStartLine(), $node->getEndLine(), $branch); | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if (isset($this->executableLinesGroupedByBranch[$node->getStartLine()])) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $this->setLineBranch($node->getStartLine(), $node->getEndLine(), ++$this->nextBranch); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function afterTraverse(array $nodes): null | ||||
|     public function afterTraverse(array $nodes): void | ||||
|     { | ||||
|         $lines = explode("\n", $this->source); | ||||
|  | ||||
| @@ -381,8 +379,6 @@ final class ExecutableLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             $this->executableLinesGroupedByBranch, | ||||
|             $this->unsets, | ||||
|         ); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -12,31 +12,39 @@ namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-type LinesType array<int, int> | ||||
|  * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * | ||||
|  * @phpstan-type LinesOfCodeType = array{ | ||||
|  *     linesOfCode: int, | ||||
|  *     commentLinesOfCode: int, | ||||
|  *     nonCommentLinesOfCode: int | ||||
|  * } | ||||
|  * @phpstan-type LinesType = array<int, int> | ||||
|  */ | ||||
| interface FileAnalyser | ||||
| { | ||||
|     /** | ||||
|      * @return array<string, Interface_> | ||||
|      */ | ||||
|     public function interfacesIn(string $filename): array; | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Class_> | ||||
|      * @return array<string, CodeUnitClassType> | ||||
|      */ | ||||
|     public function classesIn(string $filename): array; | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Trait_> | ||||
|      * @return array<string, CodeUnitTraitType> | ||||
|      */ | ||||
|     public function traitsIn(string $filename): array; | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Function_> | ||||
|      * @return array<string, CodeUnitFunctionType> | ||||
|      */ | ||||
|     public function functionsIn(string $filename): array; | ||||
|  | ||||
|     public function linesOfCodeFor(string $filename): LinesOfCode; | ||||
|     /** | ||||
|      * @return LinesOfCodeType | ||||
|      */ | ||||
|     public function linesOfCodeFor(string $filename): array; | ||||
|  | ||||
|     /** | ||||
|      * @return LinesType | ||||
|   | ||||
| @@ -39,7 +39,7 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract | ||||
|         $this->ignoreDeprecated              = $ignoreDeprecated; | ||||
|     } | ||||
|  | ||||
|     public function enterNode(Node $node): null | ||||
|     public function enterNode(Node $node): void | ||||
|     { | ||||
|         if (!$node instanceof Class_ && | ||||
|             !$node instanceof Trait_ && | ||||
| @@ -48,11 +48,11 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract | ||||
|             !$node instanceof ClassMethod && | ||||
|             !$node instanceof Function_ && | ||||
|             !$node instanceof Attribute) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Class_ && $node->isAnonymous()) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Class_ || | ||||
| @@ -68,11 +68,11 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract | ||||
|         } | ||||
|  | ||||
|         if (!$this->useAnnotationsForIgnoringCode) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Interface_) { | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if ($node instanceof Attribute && | ||||
| @@ -84,12 +84,10 @@ final class IgnoredLinesFindingVisitor extends NodeVisitorAbstract | ||||
|                 $this->ignoredLines[] = $line; | ||||
|             } | ||||
|  | ||||
|             return null; | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $this->processDocComment($node); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -34,32 +34,32 @@ use SebastianBergmann\LinesOfCode\LineCountingVisitor; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @phpstan-import-type LinesType from FileAnalyser | ||||
|  * @phpstan-import-type CodeUnitFunctionType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitMethodType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitClassType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type CodeUnitTraitType from \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor | ||||
|  * @phpstan-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  * @phpstan-import-type LinesType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser | ||||
|  */ | ||||
| final class ParsingFileAnalyser implements FileAnalyser | ||||
| { | ||||
|     /** | ||||
|      * @var array<string, array<string, Interface_>> | ||||
|      */ | ||||
|     private array $interfaces = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, array<string, Class_>> | ||||
|      * @var array<string, array<string, CodeUnitClassType>> | ||||
|      */ | ||||
|     private array $classes = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, array<string, Trait_>> | ||||
|      * @var array<string, array<string, CodeUnitTraitType>> | ||||
|      */ | ||||
|     private array $traits = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, array<string, Function_>> | ||||
|      * @var array<string, array<string, CodeUnitFunctionType>> | ||||
|      */ | ||||
|     private array $functions = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array<string, LinesOfCode> | ||||
|      * @var array<string, LinesOfCodeType> | ||||
|      */ | ||||
|     private array $linesOfCode = []; | ||||
|  | ||||
| @@ -82,17 +82,7 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Interface_> | ||||
|      */ | ||||
|     public function interfacesIn(string $filename): array | ||||
|     { | ||||
|         $this->analyse($filename); | ||||
|  | ||||
|         return $this->interfaces[$filename]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Class_> | ||||
|      * @return array<string, CodeUnitClassType> | ||||
|      */ | ||||
|     public function classesIn(string $filename): array | ||||
|     { | ||||
| @@ -102,7 +92,7 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Trait_> | ||||
|      * @return array<string, CodeUnitTraitType> | ||||
|      */ | ||||
|     public function traitsIn(string $filename): array | ||||
|     { | ||||
| @@ -112,7 +102,7 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<string, Function_> | ||||
|      * @return array<string, CodeUnitFunctionType> | ||||
|      */ | ||||
|     public function functionsIn(string $filename): array | ||||
|     { | ||||
| @@ -121,7 +111,10 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|         return $this->functions[$filename]; | ||||
|     } | ||||
|  | ||||
|     public function linesOfCodeFor(string $filename): LinesOfCode | ||||
|     /** | ||||
|      * @return LinesOfCodeType | ||||
|      */ | ||||
|     public function linesOfCodeFor(string $filename): array | ||||
|     { | ||||
|         $this->analyse($filename); | ||||
|  | ||||
| @@ -153,7 +146,7 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|      */ | ||||
|     private function analyse(string $filename): void | ||||
|     { | ||||
|         if (isset($this->interfaces[$filename])) { | ||||
|         if (isset($this->classes[$filename])) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
| @@ -174,7 +167,7 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|             assert($nodes !== null); | ||||
|  | ||||
|             $traverser                     = new NodeTraverser; | ||||
|             $codeUnitFindingVisitor        = new CodeUnitFindingVisitor($filename); | ||||
|             $codeUnitFindingVisitor        = new CodeUnitFindingVisitor; | ||||
|             $lineCountingVisitor           = new LineCountingVisitor($linesOfCode); | ||||
|             $ignoredLinesFindingVisitor    = new IgnoredLinesFindingVisitor($this->useAnnotationsForIgnoringCode, $this->ignoreDeprecatedCode); | ||||
|             $executableLinesFindingVisitor = new ExecutableLinesFindingVisitor($source); | ||||
| @@ -202,7 +195,6 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|         } | ||||
|         // @codeCoverageIgnoreEnd | ||||
|  | ||||
|         $this->interfaces[$filename]      = $codeUnitFindingVisitor->interfaces(); | ||||
|         $this->classes[$filename]         = $codeUnitFindingVisitor->classes(); | ||||
|         $this->traits[$filename]          = $codeUnitFindingVisitor->traits(); | ||||
|         $this->functions[$filename]       = $codeUnitFindingVisitor->functions(); | ||||
| @@ -222,11 +214,11 @@ final class ParsingFileAnalyser implements FileAnalyser | ||||
|  | ||||
|         $result = $lineCountingVisitor->result(); | ||||
|  | ||||
|         $this->linesOfCode[$filename] = new LinesOfCode( | ||||
|             $result->linesOfCode(), | ||||
|             $result->commentLinesOfCode(), | ||||
|             $result->nonCommentLinesOfCode(), | ||||
|         ); | ||||
|         $this->linesOfCode[$filename] = [ | ||||
|             'linesOfCode'           => $result->linesOfCode(), | ||||
|             'commentLinesOfCode'    => $result->commentLinesOfCode(), | ||||
|             'nonCommentLinesOfCode' => $result->nonCommentLinesOfCode(), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     private function findLinesIgnoredByLineBasedAnnotations(string $filename, string $source, bool $useAnnotationsForIgnoringCode): void | ||||
|   | ||||
| @@ -1,174 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Class_ | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $name; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $namespacedName; | ||||
|     private string $namespace; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $file; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $startLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $endLine; | ||||
|  | ||||
|     /** | ||||
|      * @var ?non-empty-string | ||||
|      */ | ||||
|     private ?string $parentClass; | ||||
|  | ||||
|     /** | ||||
|      * @var list<non-empty-string> | ||||
|      */ | ||||
|     private array $interfaces; | ||||
|  | ||||
|     /** | ||||
|      * @var list<non-empty-string> | ||||
|      */ | ||||
|     private array $traits; | ||||
|  | ||||
|     /** | ||||
|      * @var array<non-empty-string, Method> | ||||
|      */ | ||||
|     private array $methods; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string                $name | ||||
|      * @param non-empty-string                $namespacedName | ||||
|      * @param non-empty-string                $file | ||||
|      * @param non-negative-int                $startLine | ||||
|      * @param non-negative-int                $endLine | ||||
|      * @param ?non-empty-string               $parentClass | ||||
|      * @param list<non-empty-string>          $interfaces | ||||
|      * @param list<non-empty-string>          $traits | ||||
|      * @param array<non-empty-string, Method> $methods | ||||
|      */ | ||||
|     public function __construct(string $name, string $namespacedName, string $namespace, string $file, int $startLine, int $endLine, ?string $parentClass, array $interfaces, array $traits, array $methods) | ||||
|     { | ||||
|         $this->name           = $name; | ||||
|         $this->namespacedName = $namespacedName; | ||||
|         $this->namespace      = $namespace; | ||||
|         $this->file           = $file; | ||||
|         $this->startLine      = $startLine; | ||||
|         $this->endLine        = $endLine; | ||||
|         $this->parentClass    = $parentClass; | ||||
|         $this->interfaces     = $interfaces; | ||||
|         $this->traits         = $traits; | ||||
|         $this->methods        = $methods; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function name(): string | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function namespacedName(): string | ||||
|     { | ||||
|         return $this->namespacedName; | ||||
|     } | ||||
|  | ||||
|     public function isNamespaced(): bool | ||||
|     { | ||||
|         return $this->namespace !== ''; | ||||
|     } | ||||
|  | ||||
|     public function namespace(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function file(): string | ||||
|     { | ||||
|         return $this->file; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function startLine(): int | ||||
|     { | ||||
|         return $this->startLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function endLine(): int | ||||
|     { | ||||
|         return $this->endLine; | ||||
|     } | ||||
|  | ||||
|     public function hasParent(): bool | ||||
|     { | ||||
|         return $this->parentClass !== null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return ?non-empty-string | ||||
|      */ | ||||
|     public function parentClass(): ?string | ||||
|     { | ||||
|         return $this->parentClass; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<non-empty-string> | ||||
|      */ | ||||
|     public function interfaces(): array | ||||
|     { | ||||
|         return $this->interfaces; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<non-empty-string> | ||||
|      */ | ||||
|     public function traits(): array | ||||
|     { | ||||
|         return $this->traits; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<non-empty-string, Method> | ||||
|      */ | ||||
|     public function methods(): array | ||||
|     { | ||||
|         return $this->methods; | ||||
|     } | ||||
| } | ||||
| @@ -1,124 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Function_ | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $name; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $namespacedName; | ||||
|     private string $namespace; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $startLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $endLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $signature; | ||||
|  | ||||
|     /** | ||||
|      * @var positive-int | ||||
|      */ | ||||
|     private int $cyclomaticComplexity; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $name | ||||
|      * @param non-empty-string $namespacedName | ||||
|      * @param non-negative-int $startLine | ||||
|      * @param non-negative-int $endLine | ||||
|      * @param non-empty-string $signature | ||||
|      * @param positive-int     $cyclomaticComplexity | ||||
|      */ | ||||
|     public function __construct(string $name, string $namespacedName, string $namespace, int $startLine, int $endLine, string $signature, int $cyclomaticComplexity) | ||||
|     { | ||||
|         $this->name                 = $name; | ||||
|         $this->namespacedName       = $namespacedName; | ||||
|         $this->namespace            = $namespace; | ||||
|         $this->startLine            = $startLine; | ||||
|         $this->endLine              = $endLine; | ||||
|         $this->signature            = $signature; | ||||
|         $this->cyclomaticComplexity = $cyclomaticComplexity; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function name(): string | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function namespacedName(): string | ||||
|     { | ||||
|         return $this->namespacedName; | ||||
|     } | ||||
|  | ||||
|     public function isNamespaced(): bool | ||||
|     { | ||||
|         return $this->namespace !== ''; | ||||
|     } | ||||
|  | ||||
|     public function namespace(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function startLine(): int | ||||
|     { | ||||
|         return $this->startLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function endLine(): int | ||||
|     { | ||||
|         return $this->endLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function signature(): string | ||||
|     { | ||||
|         return $this->signature; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return positive-int | ||||
|      */ | ||||
|     public function cyclomaticComplexity(): int | ||||
|     { | ||||
|         return $this->cyclomaticComplexity; | ||||
|     } | ||||
| } | ||||
| @@ -1,109 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Interface_ | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $name; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $namespacedName; | ||||
|     private string $namespace; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $startLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $endLine; | ||||
|  | ||||
|     /** | ||||
|      * @var list<non-empty-string> | ||||
|      */ | ||||
|     private array $parentInterfaces; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string       $name | ||||
|      * @param non-empty-string       $namespacedName | ||||
|      * @param non-negative-int       $startLine | ||||
|      * @param non-negative-int       $endLine | ||||
|      * @param list<non-empty-string> $parentInterfaces | ||||
|      */ | ||||
|     public function __construct(string $name, string $namespacedName, string $namespace, int $startLine, int $endLine, array $parentInterfaces) | ||||
|     { | ||||
|         $this->name             = $name; | ||||
|         $this->namespacedName   = $namespacedName; | ||||
|         $this->namespace        = $namespace; | ||||
|         $this->startLine        = $startLine; | ||||
|         $this->endLine          = $endLine; | ||||
|         $this->parentInterfaces = $parentInterfaces; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function name(): string | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function namespacedName(): string | ||||
|     { | ||||
|         return $this->namespacedName; | ||||
|     } | ||||
|  | ||||
|     public function isNamespaced(): bool | ||||
|     { | ||||
|         return $this->namespace !== ''; | ||||
|     } | ||||
|  | ||||
|     public function namespace(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function startLine(): int | ||||
|     { | ||||
|         return $this->startLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function endLine(): int | ||||
|     { | ||||
|         return $this->endLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<non-empty-string> | ||||
|      */ | ||||
|     public function parentInterfaces(): array | ||||
|     { | ||||
|         return $this->parentInterfaces; | ||||
|     } | ||||
| } | ||||
| @@ -1,67 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class LinesOfCode | ||||
| { | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $linesOfCode; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $commentLinesOfCode; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $nonCommentLinesOfCode; | ||||
|  | ||||
|     /** | ||||
|      * @param non-negative-int $linesOfCode | ||||
|      * @param non-negative-int $commentLinesOfCode | ||||
|      * @param non-negative-int $nonCommentLinesOfCode | ||||
|      */ | ||||
|     public function __construct(int $linesOfCode, int $commentLinesOfCode, int $nonCommentLinesOfCode) | ||||
|     { | ||||
|         $this->linesOfCode           = $linesOfCode; | ||||
|         $this->commentLinesOfCode    = $commentLinesOfCode; | ||||
|         $this->nonCommentLinesOfCode = $nonCommentLinesOfCode; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function linesOfCode(): int | ||||
|     { | ||||
|         return $this->linesOfCode; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function commentLinesOfCode(): int | ||||
|     { | ||||
|         return $this->commentLinesOfCode; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function nonCommentLinesOfCode(): int | ||||
|     { | ||||
|         return $this->nonCommentLinesOfCode; | ||||
|     } | ||||
| } | ||||
| @@ -1,104 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Method | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $name; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $startLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $endLine; | ||||
|     private Visibility $visibility; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $signature; | ||||
|  | ||||
|     /** | ||||
|      * @var positive-int | ||||
|      */ | ||||
|     private int $cyclomaticComplexity; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $name | ||||
|      * @param non-negative-int $startLine | ||||
|      * @param non-negative-int $endLine | ||||
|      * @param non-empty-string $signature | ||||
|      * @param positive-int     $cyclomaticComplexity | ||||
|      */ | ||||
|     public function __construct(string $name, int $startLine, int $endLine, string $signature, Visibility $visibility, int $cyclomaticComplexity) | ||||
|     { | ||||
|         $this->name                 = $name; | ||||
|         $this->startLine            = $startLine; | ||||
|         $this->endLine              = $endLine; | ||||
|         $this->signature            = $signature; | ||||
|         $this->visibility           = $visibility; | ||||
|         $this->cyclomaticComplexity = $cyclomaticComplexity; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function name(): string | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function startLine(): int | ||||
|     { | ||||
|         return $this->startLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function endLine(): int | ||||
|     { | ||||
|         return $this->endLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function signature(): string | ||||
|     { | ||||
|         return $this->signature; | ||||
|     } | ||||
|  | ||||
|     public function visibility(): Visibility | ||||
|     { | ||||
|         return $this->visibility; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return positive-int | ||||
|      */ | ||||
|     public function cyclomaticComplexity(): int | ||||
|     { | ||||
|         return $this->cyclomaticComplexity; | ||||
|     } | ||||
| } | ||||
| @@ -1,139 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Trait_ | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $name; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $namespacedName; | ||||
|     private string $namespace; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $file; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $startLine; | ||||
|  | ||||
|     /** | ||||
|      * @var non-negative-int | ||||
|      */ | ||||
|     private int $endLine; | ||||
|  | ||||
|     /** | ||||
|      * @var list<non-empty-string> | ||||
|      */ | ||||
|     private array $traits; | ||||
|  | ||||
|     /** | ||||
|      * @var array<non-empty-string, Method> | ||||
|      */ | ||||
|     private array $methods; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string                $name | ||||
|      * @param non-empty-string                $namespacedName | ||||
|      * @param non-empty-string                $file | ||||
|      * @param non-negative-int                $startLine | ||||
|      * @param non-negative-int                $endLine | ||||
|      * @param list<non-empty-string>          $traits | ||||
|      * @param array<non-empty-string, Method> $methods | ||||
|      */ | ||||
|     public function __construct(string $name, string $namespacedName, string $namespace, string $file, int $startLine, int $endLine, array $traits, array $methods) | ||||
|     { | ||||
|         $this->name           = $name; | ||||
|         $this->namespacedName = $namespacedName; | ||||
|         $this->namespace      = $namespace; | ||||
|         $this->file           = $file; | ||||
|         $this->startLine      = $startLine; | ||||
|         $this->endLine        = $endLine; | ||||
|         $this->traits         = $traits; | ||||
|         $this->methods        = $methods; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function name(): string | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function namespacedName(): string | ||||
|     { | ||||
|         return $this->namespacedName; | ||||
|     } | ||||
|  | ||||
|     public function isNamespaced(): bool | ||||
|     { | ||||
|         return $this->namespace !== ''; | ||||
|     } | ||||
|  | ||||
|     public function namespace(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function file(): string | ||||
|     { | ||||
|         return $this->file; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function startLine(): int | ||||
|     { | ||||
|         return $this->startLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-negative-int | ||||
|      */ | ||||
|     public function endLine(): int | ||||
|     { | ||||
|         return $this->endLine; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<non-empty-string> | ||||
|      */ | ||||
|     public function traits(): array | ||||
|     { | ||||
|         return $this->traits; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<non-empty-string, Method> | ||||
|      */ | ||||
|     public function methods(): array | ||||
|     { | ||||
|         return $this->methods; | ||||
|     } | ||||
| } | ||||
| @@ -1,20 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\StaticAnalysis; | ||||
|  | ||||
| /** | ||||
|  * @internal This enumeration is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| enum Visibility: string | ||||
| { | ||||
|     case Public    = 'public'; | ||||
|     case Protected = 'protected'; | ||||
|     case Private   = 'private'; | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Class_ extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var class-string | ||||
|      */ | ||||
|     private string $className; | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $className | ||||
|      */ | ||||
|     protected function __construct(string $className) | ||||
|     { | ||||
|         $this->className = $className; | ||||
|     } | ||||
|  | ||||
|     public function isClass(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return class-string | ||||
|      */ | ||||
|     public function className(): string | ||||
|     { | ||||
|         return $this->className; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'classes'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->className; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Class ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class ClassesThatExtendClass extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var class-string | ||||
|      */ | ||||
|     private string $className; | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $className | ||||
|      */ | ||||
|     protected function __construct(string $className) | ||||
|     { | ||||
|         $this->className = $className; | ||||
|     } | ||||
|  | ||||
|     public function isClassesThatExtendClass(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return class-string | ||||
|      */ | ||||
|     public function className(): string | ||||
|     { | ||||
|         return $this->className; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'classesThatExtendClass'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->className; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Classes that extend class ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class ClassesThatImplementInterface extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var class-string | ||||
|      */ | ||||
|     private string $interfaceName; | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $interfaceName | ||||
|      */ | ||||
|     protected function __construct(string $interfaceName) | ||||
|     { | ||||
|         $this->interfaceName = $interfaceName; | ||||
|     } | ||||
|  | ||||
|     public function isClassesThatImplementInterface(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return class-string | ||||
|      */ | ||||
|     public function interfaceName(): string | ||||
|     { | ||||
|         return $this->interfaceName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'classesThatImplementInterface'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->interfaceName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Classes that implement interface ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Function_ extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $functionName; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $functionName | ||||
|      */ | ||||
|     protected function __construct(string $functionName) | ||||
|     { | ||||
|         $this->functionName = $functionName; | ||||
|     } | ||||
|  | ||||
|     public function isFunction(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function functionName(): string | ||||
|     { | ||||
|         return $this->functionName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'functions'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->functionName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Function ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,249 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function array_keys; | ||||
| use function array_merge; | ||||
| use function array_slice; | ||||
| use function array_unique; | ||||
| use function count; | ||||
| use function explode; | ||||
| use function implode; | ||||
| use function range; | ||||
| use SebastianBergmann\CodeCoverage\Filter; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Class_; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser; | ||||
| use SebastianBergmann\CodeCoverage\StaticAnalysis\Trait_; | ||||
|  | ||||
| /** | ||||
|  * @phpstan-import-type TargetMap from Mapper | ||||
|  * @phpstan-import-type TargetMapPart from Mapper | ||||
|  * | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class MapBuilder | ||||
| { | ||||
|     /** | ||||
|      * @return TargetMap | ||||
|      */ | ||||
|     public function build(Filter $filter, FileAnalyser $analyser): array | ||||
|     { | ||||
|         $namespaces                    = []; | ||||
|         $classes                       = []; | ||||
|         $classDetails                  = []; | ||||
|         $classesThatExtendClass        = []; | ||||
|         $classesThatImplementInterface = []; | ||||
|         $traits                        = []; | ||||
|         $methods                       = []; | ||||
|         $functions                     = []; | ||||
|         $reverseLookup                 = []; | ||||
|  | ||||
|         foreach ($filter->files() as $file) { | ||||
|             foreach ($analyser->traitsIn($file) as $trait) { | ||||
|                 if ($trait->isNamespaced()) { | ||||
|                     $this->processNamespace($namespaces, $trait->namespace(), $file, $trait->startLine(), $trait->endLine()); | ||||
|                 } | ||||
|  | ||||
|                 $this->process($traits, $trait->namespacedName(), $file, $trait->startLine(), $trait->endLine()); | ||||
|                 $this->processMethods($trait, $file, $methods, $reverseLookup); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         foreach ($filter->files() as $file) { | ||||
|             foreach ($analyser->traitsIn($file) as $trait) { | ||||
|                 foreach ($trait->traits() as $traitName) { | ||||
|                     if (!isset($traits[$traitName])) { | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
|                     $file = array_keys($traits[$traitName])[0]; | ||||
|  | ||||
|                     if (!isset($traits[$trait->namespacedName()][$file])) { | ||||
|                         $traits[$trait->namespacedName()][$file] = $traits[$traitName][$file]; | ||||
|  | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
|                     $traits[$trait->namespacedName()][$file] = array_unique( | ||||
|                         array_merge( | ||||
|                             $traits[$trait->namespacedName()][$file], | ||||
|                             $traits[$traitName][$file], | ||||
|                         ), | ||||
|                     ); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         foreach ($filter->files() as $file) { | ||||
|             foreach ($analyser->interfacesIn($file) as $interface) { | ||||
|                 $classesThatImplementInterface[$interface->namespacedName()] = []; | ||||
|             } | ||||
|  | ||||
|             foreach ($analyser->classesIn($file) as $class) { | ||||
|                 if ($class->isNamespaced()) { | ||||
|                     $this->processNamespace($namespaces, $class->namespace(), $file, $class->startLine(), $class->endLine()); | ||||
|                 } | ||||
|  | ||||
|                 $this->process($classes, $class->namespacedName(), $file, $class->startLine(), $class->endLine()); | ||||
|  | ||||
|                 foreach ($class->traits() as $traitName) { | ||||
|                     if (!isset($traits[$traitName])) { | ||||
|                         continue; | ||||
|                     } | ||||
|  | ||||
|                     foreach ($traits[$traitName] as $file => $lines) { | ||||
|                         if (!isset($classes[$class->namespacedName()][$file])) { | ||||
|                             $classes[$class->namespacedName()][$file] = $lines; | ||||
|  | ||||
|                             continue; | ||||
|                         } | ||||
|  | ||||
|                         $classes[$class->namespacedName()][$file] = array_unique( | ||||
|                             array_merge( | ||||
|                                 $classes[$class->namespacedName()][$file], | ||||
|                                 $lines, | ||||
|                             ), | ||||
|                         ); | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 $this->processMethods($class, $file, $methods, $reverseLookup); | ||||
|  | ||||
|                 $classesThatExtendClass[$class->namespacedName()] = []; | ||||
|                 $classDetails[]                                   = $class; | ||||
|             } | ||||
|  | ||||
|             foreach ($analyser->functionsIn($file) as $function) { | ||||
|                 if ($function->isNamespaced()) { | ||||
|                     $this->processNamespace($namespaces, $function->namespace(), $file, $function->startLine(), $function->endLine()); | ||||
|                 } | ||||
|  | ||||
|                 $this->process($functions, $function->namespacedName(), $file, $function->startLine(), $function->endLine()); | ||||
|  | ||||
|                 foreach (range($function->startLine(), $function->endLine()) as $line) { | ||||
|                     $reverseLookup[$file . ':' . $line] = $function->namespacedName(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         foreach (array_keys($namespaces) as $namespace) { | ||||
|             foreach (array_keys($namespaces[$namespace]) as $file) { | ||||
|                 $namespaces[$namespace][$file] = array_unique($namespaces[$namespace][$file]); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         foreach ($classDetails as $class) { | ||||
|             foreach ($class->interfaces() as $interfaceName) { | ||||
|                 if (!isset($classesThatImplementInterface[$interfaceName])) { | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 $this->process($classesThatImplementInterface, $interfaceName, $class->file(), $class->startLine(), $class->endLine()); | ||||
|             } | ||||
|  | ||||
|             if (!$class->hasParent()) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (!isset($classesThatExtendClass[$class->parentClass()])) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $this->process($classesThatExtendClass, $class->parentClass(), $class->file(), $class->startLine(), $class->endLine()); | ||||
|         } | ||||
|  | ||||
|         foreach (array_keys($classesThatImplementInterface) as $className) { | ||||
|             if ($classesThatImplementInterface[$className] !== []) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             unset($classesThatImplementInterface[$className]); | ||||
|         } | ||||
|  | ||||
|         foreach (array_keys($classesThatExtendClass) as $className) { | ||||
|             if ($classesThatExtendClass[$className] !== []) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             unset($classesThatExtendClass[$className]); | ||||
|         } | ||||
|  | ||||
|         return [ | ||||
|             'namespaces'                    => $namespaces, | ||||
|             'traits'                        => $traits, | ||||
|             'classes'                       => $classes, | ||||
|             'classesThatExtendClass'        => $classesThatExtendClass, | ||||
|             'classesThatImplementInterface' => $classesThatImplementInterface, | ||||
|             'methods'                       => $methods, | ||||
|             'functions'                     => $functions, | ||||
|             'reverseLookup'                 => $reverseLookup, | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     private function processMethods(Class_|Trait_ $classOrTrait, string $file, array &$methods, array &$reverseLookup): void | ||||
|     { | ||||
|         foreach ($classOrTrait->methods() as $method) { | ||||
|             $methodName = $classOrTrait->namespacedName() . '::' . $method->name(); | ||||
|  | ||||
|             $this->process($methods, $methodName, $file, $method->startLine(), $method->endLine()); | ||||
|  | ||||
|             foreach (range($method->startLine(), $method->endLine()) as $line) { | ||||
|                 $reverseLookup[$file . ':' . $line] = $methodName; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param TargetMapPart    $data | ||||
|      * @param non-empty-string $namespace | ||||
|      * @param non-empty-string $file | ||||
|      * @param positive-int     $startLine | ||||
|      * @param positive-int     $endLine | ||||
|      * | ||||
|      * @param-out TargetMapPart $data | ||||
|      */ | ||||
|     private function processNamespace(array &$data, string $namespace, string $file, int $startLine, int $endLine): void | ||||
|     { | ||||
|         $parts = explode('\\', $namespace); | ||||
|  | ||||
|         foreach (range(1, count($parts)) as $i) { | ||||
|             $this->process($data, implode('\\', array_slice($parts, 0, $i)), $file, $startLine, $endLine); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param TargetMapPart    $data | ||||
|      * @param non-empty-string $unit | ||||
|      * @param non-empty-string $file | ||||
|      * @param positive-int     $startLine | ||||
|      * @param positive-int     $endLine | ||||
|      * | ||||
|      * @param-out TargetMapPart $data | ||||
|      */ | ||||
|     private function process(array &$data, string $unit, string $file, int $startLine, int $endLine): void | ||||
|     { | ||||
|         if (!isset($data[$unit])) { | ||||
|             $data[$unit] = []; | ||||
|         } | ||||
|  | ||||
|         if (!isset($data[$unit][$file])) { | ||||
|             $data[$unit][$file] = []; | ||||
|         } | ||||
|  | ||||
|         $data[$unit][$file] = array_merge( | ||||
|             $data[$unit][$file], | ||||
|             range($startLine, $endLine), | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @@ -1,93 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function array_merge; | ||||
| use function array_unique; | ||||
|  | ||||
| /** | ||||
|  * @phpstan-type TargetMap array{namespaces: TargetMapPart, traits: TargetMapPart, classes: TargetMapPart, classesThatExtendClass: TargetMapPart, classesThatImplementInterface: TargetMapPart, methods: TargetMapPart, functions: TargetMapPart, reverseLookup: ReverseLookup} | ||||
|  * @phpstan-type TargetMapPart array<non-empty-string, array<non-empty-string, list<positive-int>>> | ||||
|  * @phpstan-type ReverseLookup array<non-empty-string, non-empty-string> | ||||
|  * | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Mapper | ||||
| { | ||||
|     /** | ||||
|      * @var TargetMap | ||||
|      */ | ||||
|     private array $map; | ||||
|  | ||||
|     /** | ||||
|      * @param TargetMap $map | ||||
|      */ | ||||
|     public function __construct(array $map) | ||||
|     { | ||||
|         $this->map = $map; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array<non-empty-string, list<positive-int>> | ||||
|      */ | ||||
|     public function mapTargets(TargetCollection $targets): array | ||||
|     { | ||||
|         $result = []; | ||||
|  | ||||
|         foreach ($targets as $target) { | ||||
|             foreach ($this->mapTarget($target) as $file => $lines) { | ||||
|                 if (!isset($result[$file])) { | ||||
|                     $result[$file] = $lines; | ||||
|  | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 $result[$file] = array_unique(array_merge($result[$file], $lines)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $result; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @throws InvalidCodeCoverageTargetException | ||||
|      * | ||||
|      * @return array<non-empty-string, list<positive-int>> | ||||
|      */ | ||||
|     public function mapTarget(Target $target): array | ||||
|     { | ||||
|         if (!isset($this->map[$target->key()][$target->target()])) { | ||||
|             throw new InvalidCodeCoverageTargetException($target); | ||||
|         } | ||||
|  | ||||
|         return $this->map[$target->key()][$target->target()]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $file | ||||
|      * @param positive-int     $line | ||||
|      * | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function lookup(string $file, int $line): string | ||||
|     { | ||||
|         $key = $file . ':' . $line; | ||||
|  | ||||
|         if (isset($this->map['reverseLookup'][$key])) { | ||||
|             return $this->map['reverseLookup'][$key]; | ||||
|         } | ||||
|  | ||||
|         return $key; | ||||
|     } | ||||
| } | ||||
| @@ -1,83 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Method extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var class-string | ||||
|      */ | ||||
|     private string $className; | ||||
|  | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $methodName; | ||||
|  | ||||
|     /** | ||||
|      * @param class-string     $className | ||||
|      * @param non-empty-string $methodName | ||||
|      */ | ||||
|     protected function __construct(string $className, string $methodName) | ||||
|     { | ||||
|         $this->className  = $className; | ||||
|         $this->methodName = $methodName; | ||||
|     } | ||||
|  | ||||
|     public function isMethod(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return class-string | ||||
|      */ | ||||
|     public function className(): string | ||||
|     { | ||||
|         return $this->className; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function methodName(): string | ||||
|     { | ||||
|         return $this->methodName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'methods'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->className . '::' . $this->methodName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Method ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Namespace_ extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $namespace; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $namespace | ||||
|      */ | ||||
|     protected function __construct(string $namespace) | ||||
|     { | ||||
|         $this->namespace = $namespace; | ||||
|     } | ||||
|  | ||||
|     public function isNamespace(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function namespace(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'namespaces'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Namespace ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,125 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| abstract class Target | ||||
| { | ||||
|     /** | ||||
|      * @param non-empty-string $namespace | ||||
|      */ | ||||
|     public static function forNamespace(string $namespace): Namespace_ | ||||
|     { | ||||
|         return new Namespace_($namespace); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $className | ||||
|      */ | ||||
|     public static function forClass(string $className): Class_ | ||||
|     { | ||||
|         return new Class_($className); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param class-string     $className | ||||
|      * @param non-empty-string $methodName | ||||
|      */ | ||||
|     public static function forMethod(string $className, string $methodName): Method | ||||
|     { | ||||
|         return new Method($className, $methodName); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $interfaceName | ||||
|      */ | ||||
|     public static function forClassesThatImplementInterface(string $interfaceName): ClassesThatImplementInterface | ||||
|     { | ||||
|         return new ClassesThatImplementInterface($interfaceName); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param class-string $className | ||||
|      */ | ||||
|     public static function forClassesThatExtendClass(string $className): ClassesThatExtendClass | ||||
|     { | ||||
|         return new ClassesThatExtendClass($className); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $functionName | ||||
|      */ | ||||
|     public static function forFunction(string $functionName): Function_ | ||||
|     { | ||||
|         return new Function_($functionName); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param trait-string $traitName | ||||
|      */ | ||||
|     public static function forTrait(string $traitName): Trait_ | ||||
|     { | ||||
|         return new Trait_($traitName); | ||||
|     } | ||||
|  | ||||
|     public function isNamespace(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isClass(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isMethod(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isClassesThatImplementInterface(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isClassesThatExtendClass(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isFunction(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public function isTrait(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     abstract public function key(): string; | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     abstract public function target(): string; | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     abstract public function description(): string; | ||||
| } | ||||
| @@ -1,70 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function count; | ||||
| use Countable; | ||||
| use IteratorAggregate; | ||||
|  | ||||
| /** | ||||
|  * @template-implements IteratorAggregate<int, Target> | ||||
|  * | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class TargetCollection implements Countable, IteratorAggregate | ||||
| { | ||||
|     /** | ||||
|      * @var list<Target> | ||||
|      */ | ||||
|     private array $targets; | ||||
|  | ||||
|     /** | ||||
|      * @param list<Target> $targets | ||||
|      */ | ||||
|     public static function fromArray(array $targets): self | ||||
|     { | ||||
|         return new self(...$targets); | ||||
|     } | ||||
|  | ||||
|     private function __construct(Target ...$targets) | ||||
|     { | ||||
|         $this->targets = $targets; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return list<Target> | ||||
|      */ | ||||
|     public function asArray(): array | ||||
|     { | ||||
|         return $this->targets; | ||||
|     } | ||||
|  | ||||
|     public function count(): int | ||||
|     { | ||||
|         return count($this->targets); | ||||
|     } | ||||
|  | ||||
|     public function isEmpty(): bool | ||||
|     { | ||||
|         return $this->count() === 0; | ||||
|     } | ||||
|  | ||||
|     public function isNotEmpty(): bool | ||||
|     { | ||||
|         return $this->count() > 0; | ||||
|     } | ||||
|  | ||||
|     public function getIterator(): TargetCollectionIterator | ||||
|     { | ||||
|         return new TargetCollectionIterator($this); | ||||
|     } | ||||
| } | ||||
| @@ -1,57 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function count; | ||||
| use Iterator; | ||||
|  | ||||
| /** | ||||
|  * @template-implements Iterator<int, Target> | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class TargetCollectionIterator implements Iterator | ||||
| { | ||||
|     /** | ||||
|      * @var list<Target> | ||||
|      */ | ||||
|     private readonly array $targets; | ||||
|     private int $position = 0; | ||||
|  | ||||
|     public function __construct(TargetCollection $metadata) | ||||
|     { | ||||
|         $this->targets = $metadata->asArray(); | ||||
|     } | ||||
|  | ||||
|     public function rewind(): void | ||||
|     { | ||||
|         $this->position = 0; | ||||
|     } | ||||
|  | ||||
|     public function valid(): bool | ||||
|     { | ||||
|         return $this->position < count($this->targets); | ||||
|     } | ||||
|  | ||||
|     public function key(): int | ||||
|     { | ||||
|         return $this->position; | ||||
|     } | ||||
|  | ||||
|     public function current(): Target | ||||
|     { | ||||
|         return $this->targets[$this->position]; | ||||
|     } | ||||
|  | ||||
|     public function next(): void | ||||
|     { | ||||
|         $this->position++; | ||||
|     } | ||||
| } | ||||
| @@ -1,39 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| use function implode; | ||||
|  | ||||
| /** | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  * | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class TargetCollectionValidator | ||||
| { | ||||
|     public function validate(Mapper $mapper, TargetCollection $targets): ValidationResult | ||||
|     { | ||||
|         $errors = []; | ||||
|  | ||||
|         foreach ($targets as $target) { | ||||
|             try { | ||||
|                 $mapper->mapTarget($target); | ||||
|             } catch (InvalidCodeCoverageTargetException $e) { | ||||
|                 $errors[] = $e->getMessage(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if ($errors === []) { | ||||
|             return ValidationResult::success(); | ||||
|         } | ||||
|  | ||||
|         return ValidationResult::failure(implode("\n", $errors)); | ||||
|     } | ||||
| } | ||||
| @@ -1,68 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final class Trait_ extends Target | ||||
| { | ||||
|     /** | ||||
|      * @var trait-string | ||||
|      */ | ||||
|     private string $traitName; | ||||
|  | ||||
|     /** | ||||
|      * @param trait-string $traitName | ||||
|      */ | ||||
|     protected function __construct(string $traitName) | ||||
|     { | ||||
|         $this->traitName = $traitName; | ||||
|     } | ||||
|  | ||||
|     public function isTrait(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return trait-string | ||||
|      */ | ||||
|     public function traitName(): string | ||||
|     { | ||||
|         return $this->traitName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function key(): string | ||||
|     { | ||||
|         return 'traits'; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function target(): string | ||||
|     { | ||||
|         return $this->traitName; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function description(): string | ||||
|     { | ||||
|         return 'Trait ' . $this->target(); | ||||
|     } | ||||
| } | ||||
| @@ -1,46 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class ValidationFailure extends ValidationResult | ||||
| { | ||||
|     /** | ||||
|      * @var non-empty-string | ||||
|      */ | ||||
|     private string $message; | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $message | ||||
|      * | ||||
|      * @noinspection PhpMissingParentConstructorInspection | ||||
|      */ | ||||
|     protected function __construct(string $message) | ||||
|     { | ||||
|         $this->message = $message; | ||||
|     } | ||||
|  | ||||
|     public function isFailure(): true | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return non-empty-string | ||||
|      */ | ||||
|     public function message(): string | ||||
|     { | ||||
|         return $this->message; | ||||
|     } | ||||
| } | ||||
| @@ -1,51 +0,0 @@ | ||||
| <?php declare(strict_types=1); | ||||
| /* | ||||
|  * This file is part of phpunit/php-code-coverage. | ||||
|  * | ||||
|  * (c) Sebastian Bergmann <sebastian@phpunit.de> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
| namespace SebastianBergmann\CodeCoverage\Test\Target; | ||||
|  | ||||
| /** | ||||
|  * @immutable | ||||
|  * | ||||
|  * @no-named-arguments Parameter names are not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| abstract readonly class ValidationResult | ||||
| { | ||||
|     public static function success(): ValidationSuccess | ||||
|     { | ||||
|         return new ValidationSuccess; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param non-empty-string $message | ||||
|      */ | ||||
|     public static function failure(string $message): ValidationFailure | ||||
|     { | ||||
|         return new ValidationFailure($message); | ||||
|     } | ||||
|  | ||||
|     protected function __construct() | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @phpstan-assert-if-true ValidationSuccess $this | ||||
|      */ | ||||
|     public function isSuccess(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @phpstan-assert-if-true ValidationFailure $this | ||||
|      */ | ||||
|     public function isFailure(): bool | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| @@ -14,10 +14,10 @@ use function sprintf; | ||||
| /** | ||||
|  * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage | ||||
|  */ | ||||
| final readonly class Percentage | ||||
| final class Percentage | ||||
| { | ||||
|     private float $fraction; | ||||
|     private float $total; | ||||
|     private readonly float $fraction; | ||||
|     private readonly float $total; | ||||
|  | ||||
|     public static function fromFractionAndTotal(float $fraction, float $total): self | ||||
|     { | ||||
|   | ||||
| @@ -19,7 +19,7 @@ final class Version | ||||
|     public static function id(): string | ||||
|     { | ||||
|         if (self::$version === '') { | ||||
|             self::$version = (new VersionId('12.0', dirname(__DIR__)))->asString(); | ||||
|             self::$version = (new VersionId('11.0.8', dirname(__DIR__)))->asString(); | ||||
|         } | ||||
|  | ||||
|         return self::$version; | ||||
|   | ||||
| @@ -2,12 +2,6 @@ | ||||
|  | ||||
| All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). | ||||
|  | ||||
| ## [6.0.0] - 2025-02-07 | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * This component is no longer supported on PHP 8.2 | ||||
|  | ||||
| ## [5.1.0] - 2024-08-27 | ||||
|  | ||||
| ### Added | ||||
| @@ -174,7 +168,6 @@ No changes | ||||
|  | ||||
| * [#23](https://github.com/sebastianbergmann/php-file-iterator/pull/23): Added support for wildcards (glob) in exclude | ||||
|  | ||||
| [6.0.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.1...main | ||||
| [5.1.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.0.1...5.1.0 | ||||
| [5.0.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/5.0.0...5.0.1 | ||||
| [5.0.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/4.1...5.0.0 | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-file-iterator/LICENSE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-file-iterator/LICENSE
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| BSD 3-Clause License | ||||
|  | ||||
| Copyright (c) 2009-2025, Sebastian Bergmann | ||||
| Copyright (c) 2009-2024, Sebastian Bergmann | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
|   | ||||
| @@ -21,18 +21,17 @@ | ||||
|     }, | ||||
|     "config": { | ||||
|         "platform": { | ||||
|             "php": "8.3.0" | ||||
|             "php": "8.2.0" | ||||
|         }, | ||||
|         "optimize-autoloader": true, | ||||
|         "sort-packages": true | ||||
|     }, | ||||
|     "prefer-stable": true, | ||||
|     "minimum-stability": "dev", | ||||
|     "require": { | ||||
|         "php": ">=8.3" | ||||
|         "php": ">=8.2" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "phpunit/phpunit": "^12.0" | ||||
|         "phpunit/phpunit": "^11.0" | ||||
|     }, | ||||
|     "autoload": { | ||||
|         "classmap": [ | ||||
| @@ -41,7 +40,7 @@ | ||||
|     }, | ||||
|     "extra": { | ||||
|         "branch-alias": { | ||||
|             "dev-main": "6.0-dev" | ||||
|             "dev-main": "5.0-dev" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										15
									
								
								vendor/phpunit/php-file-iterator/src/Factory.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/phpunit/php-file-iterator/src/Factory.php
									
									
									
									
										vendored
									
									
								
							| @@ -37,8 +37,6 @@ final class Factory | ||||
|      * @param list<non-empty-string>|string           $suffixes | ||||
|      * @param list<non-empty-string>|string           $prefixes | ||||
|      * @param list<non-empty-string>                  $exclude | ||||
|      * | ||||
|      * @phpstan-ignore missingType.generics | ||||
|      */ | ||||
|     public function getFileIterator(array|string $paths, array|string $suffixes = '', array|string $prefixes = '', array $exclude = []): AppendIterator | ||||
|     { | ||||
| @@ -115,7 +113,7 @@ final class Factory | ||||
|      * | ||||
|      * @return list<string> | ||||
|      */ | ||||
|     private function globstar(string $pattern): array | ||||
|     private function globstar(string $pattern) | ||||
|     { | ||||
|         if (stripos($pattern, '**') === false) { | ||||
|             $files = glob($pattern, GLOB_ONLYDIR); | ||||
| @@ -127,24 +125,23 @@ final class Factory | ||||
|             $patterns = [$rootPattern . $restPattern]; | ||||
|             $rootPattern .= '/*'; | ||||
|  | ||||
|             while ($directories = glob($rootPattern, GLOB_ONLYDIR)) { | ||||
|             while ($dirs = glob($rootPattern, GLOB_ONLYDIR)) { | ||||
|                 $rootPattern .= '/*'; | ||||
|  | ||||
|                 foreach ($directories as $directory) { | ||||
|                     $patterns[] = $directory . $restPattern; | ||||
|                 foreach ($dirs as $dir) { | ||||
|                     $patterns[] = $dir . $restPattern; | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             $files = []; | ||||
|  | ||||
|             foreach ($patterns as $_pattern) { | ||||
|                 $files = array_merge($files, $this->globstar($_pattern)); | ||||
|             foreach ($patterns as $pat) { | ||||
|                 $files = array_merge($files, $this->globstar($pat)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if ($files !== false) { | ||||
|             $files = array_unique($files); | ||||
|  | ||||
|             sort($files); | ||||
|  | ||||
|             return $files; | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\FileIterator; | ||||
|  | ||||
| use function assert; | ||||
| use function preg_match; | ||||
| use function realpath; | ||||
| use function str_ends_with; | ||||
| @@ -24,8 +25,8 @@ use SplFileInfo; | ||||
|  */ | ||||
| final class Iterator extends FilterIterator | ||||
| { | ||||
|     public const int PREFIX = 0; | ||||
|     public const int SUFFIX = 1; | ||||
|     public const PREFIX = 0; | ||||
|     public const SUFFIX = 1; | ||||
|     private false|string $basePath; | ||||
|  | ||||
|     /** | ||||
| @@ -55,6 +56,8 @@ final class Iterator extends FilterIterator | ||||
|     { | ||||
|         $current = $this->getInnerIterator()->current(); | ||||
|  | ||||
|         assert($current instanceof SplFileInfo); | ||||
|  | ||||
|         $filename = $current->getFilename(); | ||||
|         $realPath = $current->getRealPath(); | ||||
|  | ||||
|   | ||||
							
								
								
									
										7
									
								
								vendor/phpunit/php-invoker/ChangeLog.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/phpunit/php-invoker/ChangeLog.md
									
									
									
									
										vendored
									
									
								
							| @@ -2,12 +2,6 @@ | ||||
|  | ||||
| All notable changes are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. | ||||
|  | ||||
| ## [6.0.0] - 2025-02-07 | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * This component is no longer supported on PHP 8.2 | ||||
|  | ||||
| ## [5.0.1] - 2024-07-03 | ||||
|  | ||||
| ### Changed | ||||
| @@ -65,7 +59,6 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt | ||||
|  | ||||
| * This component is no longer supported on PHP 7.1 and PHP 7.2 | ||||
|  | ||||
| [6.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/5.0...main | ||||
| [5.0.1]: https://github.com/sebastianbergmann/php-invoker/compare/5.0.1...5.0.1 | ||||
| [5.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/4.0...5.0.0 | ||||
| [4.0.0]: https://github.com/sebastianbergmann/php-invoker/compare/3.1.1...4.0.0 | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-invoker/LICENSE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-invoker/LICENSE
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| BSD 3-Clause License | ||||
|  | ||||
| Copyright (c) 2011-2025, Sebastian Bergmann | ||||
| Copyright (c) 2011-2024, Sebastian Bergmann | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-invoker/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-invoker/README.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| # phpunit/php-invoker | ||||
|  | ||||
| [](https://packagist.org/packages/phpunit/php-invoker) | ||||
| [](https://packagist.org/packages/phpunit/php-invoker) | ||||
| [](https://github.com/sebastianbergmann/php-invoker/actions) | ||||
| [](https://codecov.io/gh/sebastianbergmann/php-invoker) | ||||
|  | ||||
|   | ||||
							
								
								
									
										9
									
								
								vendor/phpunit/php-invoker/composer.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/phpunit/php-invoker/composer.json
									
									
									
									
										vendored
									
									
								
							| @@ -18,21 +18,20 @@ | ||||
|         "issues": "https://github.com/sebastianbergmann/php-invoker/issues", | ||||
|         "security": "https://github.com/sebastianbergmann/php-invoker/security/policy" | ||||
|     }, | ||||
|     "minimum-stability": "dev", | ||||
|     "prefer-stable": true, | ||||
|     "config": { | ||||
|         "platform": { | ||||
|             "php": "8.3.0" | ||||
|             "php": "8.2.0" | ||||
|         }, | ||||
|         "optimize-autoloader": true, | ||||
|         "sort-packages": true | ||||
|     }, | ||||
|     "require": { | ||||
|         "php": ">=8.3" | ||||
|         "php": ">=8.2" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "ext-pcntl": "*", | ||||
|         "phpunit/phpunit": "^12.0-dev" | ||||
|         "phpunit/phpunit": "^11.0" | ||||
|     }, | ||||
|     "autoload": { | ||||
|         "classmap": [ | ||||
| @@ -49,7 +48,7 @@ | ||||
|     }, | ||||
|     "extra": { | ||||
|         "branch-alias": { | ||||
|             "dev-main": "6.0-dev" | ||||
|             "dev-main": "5.0-dev" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
|  */ | ||||
| namespace SebastianBergmann\Invoker; | ||||
|  | ||||
| use const PHP_EOL; | ||||
| use function extension_loaded; | ||||
| use function function_exists; | ||||
| use function implode; | ||||
|   | ||||
| @@ -2,12 +2,6 @@ | ||||
|  | ||||
| All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. | ||||
|  | ||||
| ## [5.0.0] - 2025-02-07 | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * This component is no longer supported on PHP 8.2 | ||||
|  | ||||
| ## [4.0.1] - 2024-07-03 | ||||
|  | ||||
| ### Changed | ||||
| @@ -67,7 +61,6 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt | ||||
|  | ||||
| * Removed support for PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.0, PHP 7.1, and PHP 7.2  | ||||
|  | ||||
| [5.0.0]: https://github.com/sebastianbergmann/php-text-template/compare/4.0...main | ||||
| [4.0.1]: https://github.com/sebastianbergmann/php-text-template/compare/4.0.0...4.0.1 | ||||
| [4.0.0]: https://github.com/sebastianbergmann/php-text-template/compare/3.0...4.0.0 | ||||
| [3.0.1]: https://github.com/sebastianbergmann/php-text-template/compare/3.0.0...3.0.1 | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-text-template/LICENSE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-text-template/LICENSE
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| BSD 3-Clause License | ||||
|  | ||||
| Copyright (c) 2009-2025, Sebastian Bergmann | ||||
| Copyright (c) 2009-2024, Sebastian Bergmann | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/phpunit/php-text-template/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/phpunit/php-text-template/README.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| [](https://packagist.org/packages/phpunit/php-text-template) | ||||
| [](https://packagist.org/packages/phpunit/php-text-template) | ||||
| [](https://github.com/sebastianbergmann/php-text-template/actions) | ||||
| [](https://codecov.io/gh/sebastianbergmann/php-text-template) | ||||
|  | ||||
|   | ||||
| @@ -20,18 +20,17 @@ | ||||
|     }, | ||||
|     "config": { | ||||
|         "platform": { | ||||
|             "php": "8.3.0" | ||||
|             "php": "8.2.0" | ||||
|         }, | ||||
|         "optimize-autoloader": true, | ||||
|         "sort-packages": true | ||||
|     }, | ||||
|     "minimum-stability": "dev", | ||||
|     "prefer-stable": true, | ||||
|     "require": { | ||||
|         "php": ">=8.3" | ||||
|         "php": ">=8.2" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "phpunit/phpunit": "^12.0-dev" | ||||
|         "phpunit/phpunit": "^11.0" | ||||
|     }, | ||||
|     "autoload": { | ||||
|         "classmap": [ | ||||
| @@ -40,7 +39,7 @@ | ||||
|     }, | ||||
|     "extra": { | ||||
|         "branch-alias": { | ||||
|             "dev-main": "5.0-dev" | ||||
|             "dev-main": "4.0-dev" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										7
									
								
								vendor/phpunit/php-timer/ChangeLog.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/phpunit/php-timer/ChangeLog.md
									
									
									
									
										vendored
									
									
								
							| @@ -2,12 +2,6 @@ | ||||
|  | ||||
| All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. | ||||
|  | ||||
| ## [8.0.0] - 2025-02-07 | ||||
|  | ||||
| ### Removed | ||||
|  | ||||
| * This component is no longer supported on PHP 8.1 | ||||
|  | ||||
| ## [7.0.1] - 2024-07-03 | ||||
|  | ||||
| ### Changed | ||||
| @@ -145,7 +139,6 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt | ||||
|  | ||||
| * This component is no longer supported on PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, and PHP 7.0 | ||||
|  | ||||
| [8.0.0]: https://github.com/sebastianbergmann/php-timer/compare/7.0...main | ||||
| [7.0.1]: https://github.com/sebastianbergmann/php-timer/compare/7.0.0...7.0.1 | ||||
| [7.0.0]: https://github.com/sebastianbergmann/php-timer/compare/6.0...7.0.0 | ||||
| [6.0.0]: https://github.com/sebastianbergmann/php-timer/compare/5.0.3...6.0.0 | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user