Conversation
…f signature only (issue #461) Go receiver methods (e.g., `func (r *Type) Method()`) are declared at the module level as siblings of type declarations, not children. The symbol finder only searched children, so `Type.Method` lookups failed and fell back to text search returning just the signature line. Changes: - Add `get_receiver_type()` trait method to LanguageImpl for languages where methods aren't nested inside type definitions - Implement `get_receiver_type()` and `get_symbol_signature()` for Go, handling pointer, value, and generic receivers - Add receiver-based resolution pass in symbol_finder after AST child search fails for nested symbols - Fix `get_qualified_name` to check `field_identifier` and `name` kinds for proper disambiguation across all languages - Fix PHP symbol resolution by adding `name` to identifier kind checks Test coverage: 30 new tests across Go, Rust, Python, JavaScript, TypeScript, Java, C#, and PHP with mock files for each language. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Powered by Visor from Probelabs Last updated: 2026-02-27T10:20:14.764Z | Triggered by: pr_opened | Commit: 2c2d198 💡 TIP: You can chat with Visor using |
Contributor
✅ Security Check PassedNo security issues found – changes LGTM. Architecture Issues (5)
Performance Issues (3)
Quality Issues (1)
Powered by Visor from Probelabs Last updated: 2026-02-27T10:20:17.822Z | Triggered by: pr_opened | Commit: 2c2d198 💡 TIP: You can chat with Visor using |
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
func (r *Type) Method()) now resolve via AST instead of falling back to text search, returning the full method body instead of just the signature line"name"for identifiers — added to identifier kind checks soClass.methodlookups workget_qualified_namenow checksfield_identifierandnamenode kinds for proper symbol qualification across all languagesRoot cause
Go receiver methods are declared at the module level as
method_declarationsiblings oftype_declaration, not children. The symbol finder only searched children of parent types, soType.Methodlookups always failed → text search fallback → 1-line result.Changes
src/language/language_trait.rsget_receiver_type()trait methodsrc/language/go.rsget_receiver_type()(pointer/value/generic receivers) andget_symbol_signature()src/extract/symbol_finder.rs"name"fix +get_qualified_namefixTest plan
tests/symbol_resolution_tests.rscovering:🤖 Generated with Claude Code