-
Notifications
You must be signed in to change notification settings - Fork 41
Closed
Description
Hey! We're trying to run Doctum in the https://github.com/archtechx/tenancy repository (using php doctum.phar update doctum.php --output-format=github --force --ignore-parse-errors --no-ansi --no-progress -v), but the run keeps failing until we delete intersection types from our code. Could this be because Doctum\Parser\NodeVisitor's typeToString() method doesn't handle intersection types? I think those could be handled similarly to union types – using '&' instead of '|'.
Our config file:
use Doctum\Doctum;
use Symfony\Component\Finder\Finder;
$iterator = Finder::create()
->files()
->name('*.php')
->in('src/');
return new Doctum($iterator, [
'title' => 'Tenancy for Laravel API Documentation',
'base_url' => 'https://api.tenancyforlaravel.com/',
'favicon' => 'https://tenancyforlaravel.com/favicon.ico',
]);The stack trace:
Fatal error: Uncaught Error: Call to undefined method PhpParser\Node\IntersectionType::__toString() in phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/NodeVisitor.php:196
Stack trace:
#0 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/NodeVisitor.php(329): Doctum\Parser\NodeVisitor->typeToString(Object(PhpParser\Node\IntersectionType))
#1 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/NodeVisitor.php(73): Doctum\Parser\NodeVisitor->addMethod(Object(PhpParser\Node\Stmt\ClassMethod))
#2 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200): Doctum\Parser\NodeVisitor->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))
#3 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray(Array)
#4 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))
#5 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray(Array)
#6 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))
#7 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(91): PhpParser\NodeTraverser->traverseArray(Array)
#8 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/CodeParser.php(48): PhpParser\NodeTraverser->traverse(Array)
#9 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/Parser.php(66): Doctum\Parser\CodeParser->parse('<?php\n\ndeclare(...')
#10 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Project.php(725): Doctum\Parser\Parser->parse(Object(Doctum\Project), Array)
#11 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Project.php(137): Doctum\Project->parseVersion(Object(Doctum\Version\Version), NULL, Array, false)
#12 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Console/Command/Command.php(193): Doctum\Project->update(Array, false)
#13 phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Console/Command/UpdateCommand.php(58): Doctum\Console\Command\Command->update(Object(Doctum\Project))
#14 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/symfony/console/Command/Command.php(298): Doctum\Console\Command\UpdateCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/symfony/console/Application.php(1040): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand(Object(Doctum\Console\Command\UpdateCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 phar:///Users/lukas/Projects/tenancy/doctum.phar/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 phar:///Users/lukas/Projects/tenancy/doctum.phar/bin/doctum-binary.php(26): Symfony\Component\Console\Application->run()
#19 /Users/lukas/Projects/tenancy/doctum.phar(16): include('phar:///Users/l...')
#20 {main}
thrown in phar:///Users/lukas/Projects/tenancy/doctum.phar/src/Parser/NodeVisitor.php on line 196
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working