Skip to content

Exception when using nullable types #290

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

Closed
felixfbecker opened this issue Feb 8, 2017 · 7 comments
Closed

Exception when using nullable types #290

felixfbecker opened this issue Feb 8, 2017 · 7 comments
Labels

Comments

@felixfbecker
Copy link
Owner

felixfbecker commented Feb 8, 2017

From @androlets on February 8, 2017 16:3

After latest extension update (v1.1.1) a get this error when i hover over methods

Message: ErrorException: Object of class PhpParser\Node\NullableType could not be converted to string in .vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/DefinitionResolver.php:759
#0 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/DefinitionResolver.php(759): {closure}(4096, 'Object of class...', '/home/andrejs/....', 759, Array)
#1 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/DefinitionResolver.php(131): LanguageServer\DefinitionResolver->getTypeFromNode(Object(PhpParser\Node\Stmt\ClassMethod))
#2 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/NodeVisitor/DefinitionCollector.php(45): LanguageServer\DefinitionResolver->createDefinitionFromNode(Object(PhpParser\Node\Stmt\ClassMethod), 'Skus\\Zone->tari...')
#3 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(159): LanguageServer\NodeVisitor\DefinitionCollector->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))
#4 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#5 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))
#6 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#7 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))
#8 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85): PhpParser\NodeTraverser->traverseArray(Array)
#9 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/PhpDocument.php(205): PhpParser\NodeTraverser->traverse(Array)
#10 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/PhpDocument.php(119): LanguageServer\PhpDocument->updateContent('<?php\ndeclare(s...')
#11 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/PhpDocumentLoader.php(134): LanguageServer\PhpDocument->__construct('file:///home/an...', '<?php\ndeclare(s...', Object(LanguageServer\Index\Index), Object(LanguageServer\Parser), Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver))
#12 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/src/PhpDocumentLoader.php(113): LanguageServer\PhpDocumentLoader->create('file:///home/an...', '<?php\ndeclare(s...')
#13 [internal function]: LanguageServer\PhpDocumentLoader->LanguageServer\{closure}()
#14 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/coroutine.php(70): Generator->send('<?php\ndeclare(s...')
#15 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/Promise.php(242): Sabre\Event\{closure}('<?php\ndeclare(s...')
#16 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/Loop/Loop.php(261): Sabre\Event\Promise->Sabre\Event\{closure}()
#17 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/Loop/Loop.php(215): Sabre\Event\Loop\Loop->runNextTicks()
#18 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/Loop/Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#19 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/sabre/event/lib/Loop/functions.php(122): Sabre\Event\Loop\Loop->run()
#20 /home/andrejs/.vscode/extensions/felixfbecker.php-intellisense-1.1.1/vendor/felixfbecker/language-server/bin/php-language-server.php(102): Sabre\Event\Loop\run()
#21 {main}

Copied from original issue: felixfbecker/vscode-php-intellisense#69

@felixfbecker
Copy link
Owner Author

From @androlets on February 8, 2017 16:11

I noticed that this happens in files where declare(strict_types=1); directive is used

@sebastiandedeyne
Copy link

Sorry for the duplicate. Fyi, in my case `declare(strict_types=1); isn't used.

@euskadi31
Copy link

I have same problem with PHP IntelliSense 1.1.4

[Error - 3:45:04 PM] Request textDocument/hover failed.
  Message: ErrorException: Object of class PhpParser\Node\NullableType could not be converted to string in /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/DefinitionResolver.php:749
Stack trace:
#0 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/DefinitionResolver.php(749): {closure}(4096, 'Object of class...', '/Users/aetcheve...', 749, Array)
#1 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/DefinitionResolver.php(440): LanguageServer\DefinitionResolver->getTypeFromNode(Object(PhpParser\Node\Param))
#2 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/DefinitionResolver.php(246): LanguageServer\DefinitionResolver->resolveExpressionNodeToType(Object(PhpParser\Node\Expr\Variable))
#3 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/NodeVisitor/ReferencesCollector.php(38): LanguageServer\DefinitionResolver->resolveReferenceNodeToFqn(Object(PhpParser\Node\Expr\MethodCall))
#4 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(108): LanguageServer\NodeVisitor\ReferencesCollector->enterNode(Object(PhpParser\Node\Expr\MethodCall))
#5 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Expr\Assign))
#6 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#7 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\If_))
#8 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#9 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\ClassMethod))
#10 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#11 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))
#12 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(101): PhpParser\NodeTraverser->traverseArray(Array)
#13 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(171): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))
#14 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85): PhpParser\NodeTraverser->traverseArray(Array)
#15 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/PhpDocument.php(205): PhpParser\NodeTraverser->traverse(Array)
#16 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/PhpDocument.php(119): LanguageServer\PhpDocument->updateContent('<?php\nnamespace...')
#17 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/PhpDocumentLoader.php(134): LanguageServer\PhpDocument->__construct('file:///Users/a...', '<?php\nnamespace...', Object(LanguageServer\Index\Index), Object(LanguageServer\Parser), Object(phpDocumentor\Reflection\DocBlockFactory), Object(LanguageServer\DefinitionResolver))
#18 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/src/PhpDocumentLoader.php(113): LanguageServer\PhpDocumentLoader->create('file:///Users/a...', '<?php\nnamespace...')
#19 [internal function]: LanguageServer\PhpDocumentLoader->LanguageServer\{closure}()
#20 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/coroutine.php(70): Generator->send('<?php\nnamespace...')
#21 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/Promise.php(242): Sabre\Event\{closure}('<?php\nnamespace...')
#22 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/Loop/Loop.php(261): Sabre\Event\Promise->Sabre\Event\{closure}()
#23 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/Loop/Loop.php(215): Sabre\Event\Loop\Loop->runNextTicks()
#24 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/Loop/Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#25 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/sabre/event/lib/Loop/functions.php(122): Sabre\Event\Loop\Loop->run()
#26 /Users/aetcheverry/.vscode/extensions/felixfbecker.php-intellisense-1.1.4/vendor/felixfbecker/language-server/bin/php-language-server.php(102): Sabre\Event\Loop\run()
#27 {main}

@FelikZ
Copy link

FelikZ commented Apr 13, 2017

Same here, php v7.1

@SmoshySmosh
Copy link

+1 Any progress on this?

@freeman42x
Copy link

I am having same problem with Visual Studio Code using the latest HIE.

@FelikZ
Copy link

FelikZ commented Oct 4, 2017

I think its fixed - works fine for me with latest everything.

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

No branches or pull requests

6 participants