[BUG] workspaceSymbol LSP operation crashes with undefined is not an object (evaluating 'f.location.range.start')
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Disclaimer: I'm filling this bug report on behalf of Claude Code, I first asked if could possibly be a bug with the lang server that I use slang-server and it honestly said no, and provided a potential fix too.
---
Conclusion: this is a Claude Code client bug, not a Slang bug. Slang is probably spec-compliant. The report should go to the Claude Code team, not the Slang developer. The fix is to guard against missing range:
// before:
f.location.range.start
// after:
f.location.range?.start
---
The operation crashes before returning any results, making workspace-wide symbol search completely unusable. The client code unconditionally accesses f.location.range.start but LSP 3.17 allows WorkspaceSymbol.location to omit range (partial location, resolved lazily via workspaceSymbol/resolve). When a compliant server returns the partial form, the access throws undefined is not an object (evaluating 'f.location.range.start').
What Should Happen?
workspaceSymbol should return a list of matching symbols with their file locations, allowing navigation to any symbol definition across the workspace without reading files manually.
Error Messages/Logs
Error performing workspaceSymbol: undefined is not an object (evaluating 'f.location.range.start')
Steps to Reproduce
- Open a project with a Slang language server configured
- Call the workspaceSymbol LSP operation on any file
This is the LSP config of my plugin:
{
"systemverilog": {
"command": "slang-server",
"args": [],
"extensionToLanguage": {
".sv": "systemverilog",
".svh": "systemverilog",
".v": "verilog",
".vh": "verilog"
}
}
}
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.136 (Claude Code)
Platform
Anthropic API
Operating System
Other Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗