Skip to content

feat(core): Go scanner - generics support#134

Merged
prosdev merged 1 commit intomainfrom
feat/go-scanner-generics
Dec 10, 2025
Merged

feat(core): Go scanner - generics support#134
prosdev merged 1 commit intomainfrom
feat/go-scanner-generics

Conversation

@prosdev
Copy link
Copy Markdown
Collaborator

@prosdev prosdev commented Dec 10, 2025

Summary

Implements issue #130: Add Go generics support to the scanner.

Changes

Updated

  • packages/core/src/scanner/go.ts - Added extractTypeParameters() method and generics detection
  • packages/core/src/scanner/__tests__/go.test.ts - 9 new tests for generics

Added

  • packages/core/src/scanner/__tests__/fixtures/go/generics.go - Test fixture with generic types

Features

Generics Detection:

  • Generic structs: type Stack[T any] struct
  • Generic interfaces: type Comparable[T any] interface
  • Generic functions: func Map[T, U any](...)
  • Methods on generic receivers: func (s *Stack[T]) Push(...)

Metadata:

{
  "isGeneric": true,
  "typeParameters": ["T any", "K comparable"]
}

Testing

  • 9 new generics tests
  • 1552 total tests passing (no regressions)

Related

Extend GoScanner to detect and extract generic type information:

- Generic structs: type Stack[T any] struct
- Generic interfaces: type Comparable[T any] interface
- Generic functions: func Map[T, U any](...)
- Methods on generic types: func (s *Stack[T]) Push(...)

Metadata additions:
- isGeneric: true for any generic declaration
- typeParameters: ['T any', 'K comparable'] array of type params

Updated tree-sitter query to handle generic_type nodes in receivers.

9 new tests, 1552 total passing.

Closes #130
@prosdev prosdev merged commit c1288d2 into main Dec 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(core): Go scanner - methods, receivers, and generics

1 participant