src/cgis/resolver/engine.py
if node.type in (NodeType.FUNCTION, NodeType.CLASS):
# We use the name as a key for direct calls, allowing multiple candidates
self._global_symbols.setdefault(node.name, []).append(node.id)
self._file_global_symbols[(os.path.normpath(node.file_path), node.name)] = node.id

If a file contains multiple global symbols with the same name (e.g., due to conditional definitions or overloading), the dictionary _file_global_symbols will silently overwrite previous entries with the last one processed. Consider storing a list of FQNs (similar to _global_symbols) or handling duplicates to avoid non-deterministic resolution behavior.
src/cgis/resolver/engine.py
If a file contains multiple global symbols with the same name (e.g., due to conditional definitions or overloading), the dictionary
_file_global_symbolswill silently overwrite previous entries with the last one processed. Consider storing a list of FQNs (similar to_global_symbols) or handling duplicates to avoid non-deterministic resolution behavior.