Skip to content

RuntimeException: Unexpected collection operator "<", class name is missing #771

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
andyparkerson opened this issue Nov 21, 2019 · 3 comments

Comments

@andyparkerson
Copy link

andyparkerson commented Nov 21, 2019

[Error - 2:36:57 PM] Request textDocument/documentSymbol failed.
  Message: RuntimeException: Unexpected collection operator "<", class name is missing in C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\type-resolver\src\TypeResolver.php:217
Stack trace:
#0 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\type-resolver\src\TypeResolver.php(146): phpDocumentor\Reflection\TypeResolver->parseTypes(Object(ArrayIterator), Object(phpDocumentor\Reflection\Types\Context), 0)
#1 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\Tags\Return_.php(52): phpDocumentor\Reflection\TypeResolver->resolve('<type>', Object(phpDocumentor\Reflection\Types\Context))
#2 [internal function]: phpDocumentor\Reflection\DocBlock\Tags\Return_::create('<type>  The ord...', Object(phpDocumentor\Reflection\TypeResolver), Object(phpDocumentor\Reflection\DocBlock\DescriptionFactory), Object(phpDocumentor\Reflection\Types\Context))
#3 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\StandardTagFactory.php(201): call_user_func_array(Array, Array)
#4 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\StandardTagFactory.php(122): phpDocumentor\Reflection\DocBlock\StandardTagFactory->createTag('<type>  The ord...', 'return', Object(phpDocumentor\Reflection\Types\Context))
#5 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlockFactory.php(231): phpDocumentor\Reflection\DocBlock\StandardTagFactory->create('@return     <ty...', Object(phpDocumentor\Reflection\Types\Context))
#6 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlockFactory.php(96): phpDocumentor\Reflection\DocBlockFactory->parseTagBlock('@return     <ty...', Object(phpDocumentor\Reflection\Types\Context))
#7 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(166): phpDocumentor\Reflection\DocBlockFactory->create('/**\r\n\t * Gets a...', Object(phpDocumentor\Reflection\Types\Context))
#8 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(1127): LanguageServer\DefinitionResolver->getDocBlock(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#9 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(240): LanguageServer\DefinitionResolver->getTypeFromNode(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#10 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(157): LanguageServer\DefinitionResolver->createDefinitionFromNode(Object(Microsoft\PhpParser\Node\MethodDeclaration), 'Order::getOrder...')
#11 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(124): LanguageServer\TreeAnalyzer->collectDefinitionsAndReferences(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#12 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(136): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#13 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(140): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\ClassMembersNode))
#14 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(136): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\Statement\ClassDeclaration))
#15 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(58): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\SourceFileNode))
#16 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocument.php(147): LanguageServer\TreeAnalyzer->__construct(Object(Microsoft\PhpParser\Parser), '<?php\r\n\r\n/**\r\n ...', Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver), 'file:///c:/vagr...')
#17 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocument.php(105): LanguageServer\PhpDocument->updateContent('<?php\r\n\r\n/**\r\n ...')
#18 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php(141): LanguageServer\PhpDocument->__construct('file:///c:/vagr...', '<?php\r\n\r\n/**\r\n ...', Object(LanguageServer\Index\Index), Object(Microsoft\PhpParser\Parser), Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver))
#19 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php(120): LanguageServer\PhpDocumentLoader->create('file:///c:/vagr...', '<?php\r\n\r\n/**\r\n ...')
#20 [internal function]: LanguageServer\PhpDocumentLoader->LanguageServer\{closure}()
#21 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\coroutine.php(70): Generator->send('<?php\r\n\r\n/**\r\n ...')
#22 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Promise.php(242): Sabre\Event\{closure}('<?php\r\n\r\n/**\r\n ...')
#23 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(261): Sabre\Event\Promise->Sabre\Event\{closure}()
#24 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(215): Sabre\Event\Loop\Loop->runNextTicks()
#25 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#26 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\functions.php(122): Sabre\Event\Loop\Loop->run()
#27 C:\Users\Andy\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\bin\php-language-server.php(55): Sabre\Event\Loop\run()
#28 {main}
  Code: -32603 
@Darkenend
Copy link

I'm having a similar issue, but it throws a different runtime exception, with the Stack Trace having the same code:

  Message: RuntimeException: A type is missing in an array expression in C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\type-resolver\src\TypeResolver.php:257
Stack trace:
#0 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\type-resolver\src\TypeResolver.php(195): phpDocumentor\Reflection\TypeResolver->parseTypes(Object(ArrayIterator), Object(phpDocumentor\Reflection\Types\Context), 2)
#1 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\type-resolver\src\TypeResolver.php(146): phpDocumentor\Reflection\TypeResolver->parseTypes(Object(ArrayIterator), Object(phpDocumentor\Reflection\Types\Context), 0)
#2 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\Tags\Return_.php(52): phpDocumentor\Reflection\TypeResolver->resolve('array()', Object(phpDocumentor\Reflection\Types\Context))
#3 [internal function]: phpDocumentor\Reflection\DocBlock\Tags\Return_::create('array() matriz', Object(phpDocumentor\Reflection\TypeResolver), Object(phpDocumentor\Reflection\DocBlock\DescriptionFactory), Object(phpDocumentor\Reflection\Types\Context))
#4 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\StandardTagFactory.php(201): call_user_func_array(Array, Array)
#5 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlock\StandardTagFactory.php(122): phpDocumentor\Reflection\DocBlock\StandardTagFactory->createTag('array() matriz', 'return', Object(phpDocumentor\Reflection\Types\Context))
#6 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlockFactory.php(231): phpDocumentor\Reflection\DocBlock\StandardTagFactory->create('@return array()...', Object(phpDocumentor\Reflection\Types\Context))
#7 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\phpdocumentor\reflection-docblock\src\DocBlockFactory.php(96): phpDocumentor\Reflection\DocBlockFactory->parseTagBlock('@param string $...', Object(phpDocumentor\Reflection\Types\Context))
#8 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(166): phpDocumentor\Reflection\DocBlockFactory->create('/**\n     * Reto...', Object(phpDocumentor\Reflection\Types\Context))
#9 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(1127): LanguageServer\DefinitionResolver->getDocBlock(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#10 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\DefinitionResolver.php(240): LanguageServer\DefinitionResolver->getTypeFromNode(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#11 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(157): LanguageServer\DefinitionResolver->createDefinitionFromNode(Object(Microsoft\PhpParser\Node\MethodDeclaration), 'Jazzyweb\\Agenda...')
#12 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(124): LanguageServer\TreeAnalyzer->collectDefinitionsAndReferences(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#13 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(136): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\MethodDeclaration))
#14 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(140): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\ClassMembersNode))
#15 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(136): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\Statement\ClassDeclaration))
#16 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\TreeAnalyzer.php(58): LanguageServer\TreeAnalyzer->traverse(Object(Microsoft\PhpParser\Node\SourceFileNode))
#17 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocument.php(147): LanguageServer\TreeAnalyzer->__construct(Object(Microsoft\PhpParser\Parser), '<?php\n\nnamespac...', Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver), 'file:///d:/Deve...')
#18 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocument.php(105): LanguageServer\PhpDocument->updateContent('<?php\n\nnamespac...')
#19 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php(141): LanguageServer\PhpDocument->__construct('file:///d:/Deve...', '<?php\n\nnamespac...', Object(LanguageServer\Index\Index), Object(Microsoft\PhpParser\Parser), Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver))
#20 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php(120): LanguageServer\PhpDocumentLoader->create('file:///d:/Deve...', '<?php\n\nnamespac...')
#21 [internal function]: LanguageServer\PhpDocumentLoader->LanguageServer\{closure}()
#22 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\coroutine.php(70): Generator->send('<?php\n\nnamespac...')
#23 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Promise.php(242): Sabre\Event\{closure}('<?php\n\nnamespac...')
#24 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(261): Sabre\Event\Promise->Sabre\Event\{closure}()
#25 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(215): Sabre\Event\Loop\Loop->runNextTicks()
#26 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#27 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\sabre\event\lib\Loop\functions.php(122): Sabre\Event\Loop\Loop->run()
#28 C:\Users\alvar\.vscode\extensions\felixfbecker.php-intellisense-2.3.13\vendor\felixfbecker\language-server\bin\php-language-server.php(55): Sabre\Event\Loop\run()
#29 {main}
  Code: -32603

@zeyadmbk
Copy link

zeyadmbk commented Apr 7, 2020

@andyparkerson I'm having the same issue. Any luck with the solution?

@TiBeN
Copy link

TiBeN commented Oct 26, 2020

I had the same issue. It seems the Exception is triggered by phpdocumentor while scanning comments blocs. As a workaround "<" chars from comments in your code have to be removed. Typically in my code i had comments like this:

/**
* [..] 
* @param <type> myVar
*/

<type> is what makes throwing this exception. But this is just a workaround and this is not really satisfying from a user perspective as code support tools like php language server have to handle theses cases like displaying a warning, not break.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants