neild3r / vscode-php-docblocker

Simple docblocker for php
MIT License
94 stars 31 forks source link

Unable to describe function with typed return value #207

Closed AnrDaemon closed 3 years ago

AnrDaemon commented 3 years ago

Issue Type: Bug

<?php

function xxx(): array {
}
[2021-10-04 16:40:42.466] [exthost] [error] TypeError: Cannot read property 'index' of null
    at N.getClassHead (d:\Profiles\anrdaemon\.vscode\extensions\neilbrayfield.php-docblocker-2.6.0\out\src\extension.js:1:2358)
    at N.parse (d:\Profiles\anrdaemon\.vscode\extensions\neilbrayfield.php-docblocker-2.6.0\out\src\extension.js:6:3396)
    at w.autoDocument (d:\Profiles\anrdaemon\.vscode\extensions\neilbrayfield.php-docblocker-2.6.0\out\src\extension.js:6:4956)
    at d:\Profiles\anrdaemon\.vscode\extensions\neilbrayfield.php-docblocker-2.6.0\out\src\extension.js:6:13017
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:103:21150
    at Object.edit (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:51528)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:103:21137
    at _executeContributedCommand (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:110879)
    at _.$executeContributedCommand (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:94:111317)
    at i._doInvokeHandler (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:98:13543)
    at i._invokeHandler (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:98:13227)
    at i._receiveRequest (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:98:11889)
    at i._receiveOneMessage (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:98:10567)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:98:8663
    at c.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:66:1712)
    at l.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:15781)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:113:30187
    at c.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:66:1712)
    at l.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:15781)
    at r._receiveMessage (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:21051)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:17929
    at c.fire (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:66:1712)
    at v.acceptChunk (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:13142)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:74:12490
    at Socket.w (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:113:13350)
    at Socket.emit (events.js:315:20)
    at addChunk (internal/streams/readable.js:309:12)
    at readableAddChunk (internal/streams/readable.js:284:9)
    at Socket.Readable.push (internal/streams/readable.js:223:10)
    at Pipe.onStreamRead (internal/stream_base_commons.js:188:23) php-docblocker.trigger

Extension version: 2.6.0 VS Code version: Code 1.60.2 (7f6ab5485bbc008386c4386d08766667e155244e, 2021-09-22T12:00:31.514Z) OS version: Windows_NT x64 6.1.7601 Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i5-3550 CPU @ 3.30GHz (4 x 3292)| |GPU Status|2d_canvas: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
skia_renderer: enabled_on
video_decode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|15.96GB (3.70GB free)| |Process Argv|//DAEMON-EC.DARKDRAGON.LAN/anrdaemon/Documents/caduceus/bach-x5-gui --crash-reporter-id d05c8b79-33ba-42b6-8c5c-db1f4b0e913c| |Screen Reader|no| |VM|0%|
neild3r commented 3 years ago

Looks like this is because your writing a function outside of a class and it's trying to find the class header to resolve any namespaces

neild3r commented 3 years ago

Similar to #208

AnrDaemon commented 3 years ago

Backtrace seems very similar, yes.

neild3r commented 3 years ago

This should be fixed as of v2.6.1

AnrDaemon commented 3 years ago

Can't you detect outer block start when in editor? Then you won't need to back scan N lines.

neild3r commented 3 years ago

Admittedly I haven't had a detailed read of the VSCode API for a quite some time but last I checked there wasn't a simple way to do that. If you know how I'm all ears.