fix(bridge): serialize CallHierarchyItemResult.kind as LSP integer - #117
Merged
Conversation
Changed kind field from String to u32 in CallHierarchyItemResult.
format!("{:?}", item.kind) produced debug strings like "Function" which
caused serde deserialization to fail in get_incoming_calls and
get_outgoing_calls (expected i32, got string). Now uses
serde_json::to_value to extract the numeric LSP value.
Adds regression test verifying SymbolKind::FUNCTION maps to 12u32.
Closes #112
bug-ops
enabled auto-merge (squash)
April 29, 2026 13:54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CallHierarchyItemResult.kindfromStringtou32format!("{:?}", item.kind)produced debug strings like"Function"instead of LSP integer12, causingserde_json::from_value::<CallHierarchyItem>to fail 100% of the time inget_incoming_callsandget_outgoing_callsserde_json::to_value(item.kind)(SymbolKind inner field is private)SymbolKind::FUNCTIONmust serialize to12u32Closes #112
Test plan
cargo nextest run --workspace --all-features --lib --bins— 345 tests passcargo clippy --all-targets --all-features --workspace -- -D warnings— cleancargo +nightly fmt --check— cleantest_convert_call_hierarchy_item_kind_is_numericverifies the round-trip invariant