MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / resolve_file_usages

Function resolve_file_usages

src/pipeline/pass_parallel.c:2354–2383  ·  view source on GitHub ↗

Resolve usages for one file. */

Source from the content-addressed store, hash-verified

2352
2353/* Resolve usages for one file. */
2354static void resolve_file_usages(resolve_ctx_t *rc, resolve_worker_state_t *ws,
2355 CBMFileResult *result, const char *rel, const char *module_qn,
2356 const char **imp_keys, const char **imp_vals, int imp_count) {
2357 for (int u = 0; u < result->usages.count; u++) {
2358 CBMUsage *usage = &result->usages.items[u];
2359 if (!usage->ref_name) {
2360 continue;
2361 }
2362 const cbm_gbuf_node_t *src =
2363 find_source_node(rc->main_gbuf, rc->project_name, rel, usage->enclosing_func_qn);
2364 if (!src) {
2365 continue;
2366 }
2367 cbm_resolution_t res = cbm_registry_resolve(rc->registry, usage->ref_name, module_qn,
2368 imp_keys, imp_vals, imp_count);
2369 if (!res.qualified_name || res.qualified_name[0] == '\0') {
2370 continue;
2371 }
2372 const cbm_gbuf_node_t *tgt = cbm_gbuf_find_by_qn(rc->main_gbuf, res.qualified_name);
2373 if (!tgt || src->id == tgt->id) {
2374 continue;
2375 }
2376 char uprops[CBM_SZ_256];
2377 char esc_ref[CBM_SZ_256]; /* sliced source text: escape quotes/newlines */
2378 cbm_json_escape(esc_ref, sizeof(esc_ref), usage->ref_name);
2379 snprintf(uprops, sizeof(uprops), "{\"callee\":\"%s\"}", esc_ref);
2380 cbm_gbuf_insert_edge(ws->local_edge_buf, src->id, tgt->id, "USAGE", uprops);
2381 ws->usages_resolved++;
2382 }
2383}
2384
2385/* Resolve throws/raises for one file. */
2386static void resolve_file_throws(resolve_ctx_t *rc, resolve_worker_state_t *ws,

Callers 1

resolve_workerFunction · 0.85

Calls 5

find_source_nodeFunction · 0.85
cbm_registry_resolveFunction · 0.85
cbm_gbuf_find_by_qnFunction · 0.85
cbm_json_escapeFunction · 0.85
cbm_gbuf_insert_edgeFunction · 0.85

Tested by

no test coverage detected