diff --git a/src/codeweaver/semantic/registry.py b/src/codeweaver/semantic/registry.py index 37b77abe..47bfe054 100644 --- a/src/codeweaver/semantic/registry.py +++ b/src/codeweaver/semantic/registry.py @@ -344,17 +344,12 @@ def _get_direct_connections_by_source( """Get DirectConnections by their source Thing name across all languages.""" if language: yield from self.direct_connections[language].get(source, []) - yield from ( - next( - ( - conns - for content in self._direct_connections.values() - for con_name, conns in content.items() - if con_name == source - ), - [], - ) - ) + # Iterate over contents using direct key lookups to avoid O(N^2) generator overhead and preserve O(1) hash map access + else: + for content in self._direct_connections.values(): + if source in content: + yield from content[source] + break def _get_positional_connections_by_source( self, source: ThingNameT, *, language: SemanticSearchLanguage | None = None @@ -362,15 +357,11 @@ def _get_positional_connections_by_source( """Get PositionalConnectionss by their source Thing name across all languages.""" if language: return self.positional_connections[language].get(source) - return next( - ( - conn - for content in self._positional_connections.values() - for con_name, conn in content.items() - if con_name == source - ), - None, - ) + # Iterate over contents using direct key lookups to avoid O(N^2) generator overhead and preserve O(1) hash map access + for content in self._positional_connections.values(): + if source in content: + return content[source] + return None def get_positional_connections_by_source( self, source: ThingNameT, *, language: SemanticSearchLanguage | None = None