mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-10 09:13:53 +08:00
Struct definitions were labelled 'Class', conflating a distinct kind. Emit the precise 'Struct' label for Rust (struct_item), Swift/D (struct_declaration) and Go (type_spec struct_type); C/C++/Obj-C struct_specifier stays 'Class'. To avoid regressing type resolution, a struct must still behave as a type everywhere a class does. Added a centralized predicate cbm_label_is_type_like() (Class/Struct/Interface/Enum/Type/Trait) and routed every type-like consumer through it: registry seeding (pass_definitions/pass_parallel/pipeline_incremental kept in sync), class-resolution (pass_semantic/pass_parallel resolve_as_class), Go interface satisfaction (collects Struct nodes), the cross-file LSP label map, and the Go/Rust LSP type registrars. Class-only sites (protobuf services, K8s kinds, the C-family LSPs) are left unchanged. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>