Qualified type names (Module::TypeName) #4

Closed
opened 2026-06-16 14:47:40 +00:00 by GKaszewski · 0 comments
Owner

What to build

Store type names as module-qualified identifiers (e.g. Domain::Order instead of just Order) to properly handle duplicate type names across modules. Currently, types like DtoBaseModel appearing in multiple modules cause false positive/negative relationships because matching is by simple name.

The qualification should be internal to the CodeGraph — renderers strip the module prefix when displaying within a namespace, but use it for cross-module relationship resolution.

Acceptance criteria

  • CodeElement stores a qualified name internally
  • Relationship resolution uses qualified names to avoid cross-module false matches
  • Renderers display unqualified names within their namespace context
  • Duplicate type names in different modules no longer cause false edges
  • All existing tests updated and passing

Blocked by

None - can start immediately

## What to build Store type names as module-qualified identifiers (e.g. `Domain::Order` instead of just `Order`) to properly handle duplicate type names across modules. Currently, types like `DtoBaseModel` appearing in multiple modules cause false positive/negative relationships because matching is by simple name. The qualification should be internal to the CodeGraph — renderers strip the module prefix when displaying within a namespace, but use it for cross-module relationship resolution. ## Acceptance criteria - [ ] CodeElement stores a qualified name internally - [ ] Relationship resolution uses qualified names to avoid cross-module false matches - [ ] Renderers display unqualified names within their namespace context - [ ] Duplicate type names in different modules no longer cause false edges - [ ] All existing tests updated and passing ## Blocked by None - can start immediately
GKaszewski added the P1 label 2026-06-17 06:46:14 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GKaszewski/archlens#4