feat(r): box::use/library imports + module\$fn calls (#218, #219)
R had no import extraction at all (not in the import dispatch), so library(), require(), source() AND box::use() all produced zero IMPORTS edges; and module\$fn() calls were dropped because the call-callee resolver did not handle R extract_operator function nodes. #218: add parse_r_imports — recursively scan for call nodes and emit IMPORTS for library/require/requireNamespace/loadNamespace/source (first arg) and for each box::use(mod[syms], pkg/path[syms], ...) argument (module path = the spec text before the [symbols] list). AST node types confirmed via a tree-sitter-R probe. #219: handle extract_operator (R \$) as a call function node in extract_callee_from_fields → emit "module.fn" so module\$fn() yields a CALLS edge like other member calls. Tests cover box::use + library + source imports and the \$-call; r_collect_imports added to the recursion whitelist.
M
Martin Vogel committed
1a636f1962ffdf58de723b277b8c1e1f2e094d78
Parent: d67329e