diff --git a/composer.json b/composer.json index b485492f524d630f4fed69773c684873a80b904a..0e255c4d0f8e0ce36a83c55ae466290f402eeffa 100644 --- a/composer.json +++ b/composer.json @@ -27,8 +27,8 @@ "php": "^8.0", "ext-tokenizer": "*", "nette/finder": "^2.5", - "nette/php-generator": "^3.6.1", - "symfony/console": "^5.0", + "nette/php-generator": "^4.0.1", + "symfony/console": "^6.0", "symfony/filesystem": "^6.0" }, "require-dev": { diff --git a/src/ClassGenerator.php b/src/ClassGenerator.php index 4aef346ebbb26b1724a99136da141c54c08ec0ee..1eaf498e22997ea1b214f8e7df8959bbca286155 100644 --- a/src/ClassGenerator.php +++ b/src/ClassGenerator.php @@ -82,7 +82,7 @@ final class ClassGenerator $file = Code\PhpFile::fromCode($classFileContent); $matchedNamespace = null; foreach ($file->getNamespaces() as $namespace) { - $doesNamespaceContainDesiredClass = \count(\array_filter($namespace->getClasses(), fn(Code\ClassType $classType): bool => $classType->getName() === $className)) === 1; + $doesNamespaceContainDesiredClass = \count(\array_filter($namespace->getClasses(), fn(Code\ClassLike $classType): bool => $classType->getName() === $className)) === 1; if ($doesNamespaceContainDesiredClass) { $matchedNamespace = $namespace; break; @@ -90,9 +90,12 @@ final class ClassGenerator } \assert($matchedNamespace !== null); + $classType = Code\ClassType::from($classFqn, withBodies: true); + \assert($classType instanceof Code\ClassType); + return ClassInNamespace::from( $matchedNamespace, - Code\ClassType::withBodiesFrom($classFqn), + $classType, ); } diff --git a/src/DefinitionFilesLocator.php b/src/DefinitionFilesLocator.php index 36f209966e19c729ec6f5420a0072888c61f0e57..f876be7df4d2ef6fc3773febbc8427429ee6094f 100644 --- a/src/DefinitionFilesLocator.php +++ b/src/DefinitionFilesLocator.php @@ -21,6 +21,7 @@ final class DefinitionFilesLocator if (\is_dir($path)) { $files = Finder::findFiles($searchPattern)->from($path); foreach ($files as $file) { + \assert($file instanceof \SplFileInfo); $result[] = DefinitionFile::from($file->getPathname()); } } elseif (\is_file($path)) {