Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/codegraphcontext/tools/graph_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,8 @@ def _create_all_function_calls(self, all_file_data: list[Dict], imports_map: dic
class_names = {c['name'] for c in file_data.get('classes', [])}
local_names = func_names | class_names
local_imports = {imp.get('alias') or imp['name'].split('.')[-1]: imp['name']
for imp in file_data.get('imports', [])}
for imp in file_data.get('imports', [])
if imp.get('name') and not imp['name'].endswith('.*')}

for call in file_data.get('function_calls', []):
resolved = self._resolve_function_call(
Expand Down
6 changes: 3 additions & 3 deletions src/codegraphcontext/tools/indexing/resolution/calls.py
Original file line number Diff line number Diff line change
Expand Up @@ -1753,7 +1753,7 @@ def file_local_imports(fd: Dict[str, Any]) -> Dict[str, str]:
return {
imp.get("alias") or imp["name"].split(".")[-1]: imp["name"]
for imp in fd.get("imports", [])
if not imp["name"].endswith(".*")
if imp.get("name") and not imp["name"].endswith(".*")
}

def file_package(fd: Dict[str, Any]) -> Optional[str]:
Expand Down Expand Up @@ -2144,12 +2144,12 @@ def functions_named(name: str) -> List[Tuple[str, Dict[str, Any]]]:
local_imports = {
imp.get("alias") or imp["name"].split(".")[-1]: imp["name"]
for imp in file_data.get("imports", [])
if not imp["name"].endswith(".*")
if imp.get("name") and not imp["name"].endswith(".*")
}
wildcard_imports = [
imp["name"][:-2]
for imp in file_data.get("imports", [])
if imp["name"].endswith(".*")
if imp.get("name") and imp["name"].endswith(".*")
]
if wildcard_imports:
local_imports["__wildcards__"] = wildcard_imports
Expand Down
15 changes: 9 additions & 6 deletions src/codegraphcontext/tools/indexing/resolution/inheritance.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ def build_inheritance_and_csharp_files(
local_imports = {
imp.get("alias") or imp["name"].split(".")[-1]: imp["name"]
for imp in file_data.get("imports", [])
if imp.get("name")
}

for key in ["classes", "structs", "traits", "interfaces", "mixins", "enums", "extensions", "variables"]:
Expand Down Expand Up @@ -320,10 +321,12 @@ def _resolve_decorator_path(
return caller_path
if decorator_name in local_imports:
imported = local_imports[decorator_name]
lookup = imported.split(".")[-1]
paths = imports_map.get(lookup, imports_map.get(imported, []))
if len(paths) == 1:
return str(Path(paths[0]).resolve().as_posix())
# imported can be None when the import entry lacks both "source" and "full_import_name"
if imported:
lookup = imported.split(".")[-1]
paths = imports_map.get(lookup, imports_map.get(imported, []))
if len(paths) == 1:
return str(Path(paths[0]).resolve().as_posix())
paths = imports_map.get(decorator_name, [])
if len(paths) == 1:
return str(Path(paths[0]).resolve().as_posix())
Expand All @@ -347,7 +350,7 @@ def build_decorated_by_links(
if item.get("name")
}
local_imports = {
imp.get("alias") or imp.get("name"): imp.get("source")
imp.get("alias") or imp.get("name"): imp.get("source") or imp.get("full_import_name")
for imp in file_data.get("imports", [])
if imp.get("name") or imp.get("alias")
}
Expand Down Expand Up @@ -403,7 +406,7 @@ def build_metaclass_links(
caller_file_path = str(Path(file_data["path"]).resolve().as_posix())
local_class_names = {c["name"] for c in file_data.get("classes", [])}
local_imports = {
imp.get("alias") or imp.get("name"): imp.get("source")
imp.get("alias") or imp.get("name"): imp.get("source") or imp.get("full_import_name")
for imp in file_data.get("imports", [])
if imp.get("name") or imp.get("alias")
}
Expand Down
2 changes: 1 addition & 1 deletion src/codegraphcontext/tools/languages/elisp.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,7 @@ def pre_scan_elisp(files: list[Path], parser_wrapper) -> dict:
imports_map.setdefault(variable["name"], []).append(resolved_path)

for imp in parser._find_imports(tree.root_node, is_dependency=False):
if imp.get("import_type") == "provide":
if imp.get("import_type") == "provide" and imp.get("name"):
imports_map.setdefault(imp["name"], []).append(resolved_path)
except Exception as e:
warning_logger(
Expand Down
Loading