Closed ngyuki closed 4 years ago
I get the following error in the developer tools when using getpsalm.psalm-vscode-plugin on Windows with VSCode.
Uncaught InvalidArgumentException: Could not get file storage for c:\users\ngyuki\code\src\example.php in C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\Provider\FileStorageProvider.php:49 Stack trace: #0 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Codebase.php(396): Psalm\Internal\Provider\FileStorageProvider->get('c:\\users\\ngyuki...') #1 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\LanguageServer\LanguageServer.php(323): Psalm\Codebase->reloadFiles(Object(Psalm\Internal\Analyzer\ProjectAnalyzer), Array) #2 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\LanguageServer\LanguageServer.php(175): Psalm\Internal\LanguageServer\LanguageServer->doAnalysis() #3 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\LanguageServer\EmitterTrait.php(80): Psalm\Internal\LanguageServer\LanguageServer->Psalm\Internal\LanguageServer\{closure}() #4 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\LanguageServer\ProtocolStreamReader.php(67): Psalm\Internal\LanguageServer\ProtocolStreamReader->emit('readMessageGrou...') #5 [internal function]: Psalm\Internal\LanguageServer\ProtocolStreamReader->Psalm\Internal\LanguageServer\{closure}() #6 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Coroutine.php(118): Generator->send('{"jsonrpc":"2.0...') #7 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Internal\Placeholder.php(149): Amp\Coroutine->Amp\{closure}(NULL, '{"jsonrpc":"2.0...') #8 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Deferred.php(52): class@anonymous->resolve('{"jsonrpc":"2.0...') #9 C:\Users\ngyuki\code\vendor\amphp\byte-stream\lib\ResourceInputStream.php(109): Amp\Deferred->resolve('{"jsonrpc":"2.0...') #10 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Loop\Driver.php(119): Amp\ByteStream\ResourceInputStream::Amp\ByteStream\{closure}('h', '{"jsonrpc":"2.0...') #11 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Loop\Driver.php(72): Amp\Loop\Driver->tick() #12 C:\Users\ngyuki\code\vendor\amphp\amp\lib\Loop.php(95): Amp\Loop\Driver->run() #13 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\Psalm\Internal\Analyzer\ProjectAnalyzer.php(446): Amp\Loop::run() #14 C:\Users\ngyuki\code\vendor\vimeo\psalm\src\psalm-language-server.php(292): Psalm\Internal\Analyzer\ProjectAnalyzer->server('127.0.0.1:62939', false) #15 C:\Users\ngyuki\code\vendor\vimeo\psalm\psalm-language-server(2): require_once('C:\\Users\\ngyuki...') #16 {main}(Psalm 3.13.1@afd8874a9e4562eac42a02de90e42e430c3a1db1 crashed due to an uncaught Throwable)
In my opinion, the file path case passed from VSCode is not strict and may not match the following conditions.
https://github.com/vimeo/psalm/blob/3.13.1/src/Psalm/Codebase.php#L392
if (in_array($referenced_file_path, $diff_files, true)) { continue; }
I think this is a problem that can be solved by LanguageServer.
Hey @ngyuki, can you reproduce the issue on https://psalm.dev ?
No! This issue is LanguageServer problem.
I get the following error in the developer tools when using getpsalm.psalm-vscode-plugin on Windows with VSCode.
In my opinion, the file path case passed from VSCode is not strict and may not match the following conditions.
I think this is a problem that can be solved by LanguageServer.