Expand description
Call-site edge extraction.
Walks a lowered statement body and pulls out every
procedure / function invocation as a CallSite. The
dependency-graph layer resolves each callee to a concrete
node (via plsql_symbols::resolve_reference) and mints a
Calls edge; this module’s job is purely extraction — find
the call sites and their shape.
Calls appear in three places:
- Statement-level procedure calls — a bare
Statement::Unrecognizedline whose text ispkg.proc(args);(the stmt recogniser leaves these unclassified because they’re neither assignment nor control flow). - Expression-embedded function calls — inside an
Assignment.rhs_text, anIfarm condition, a loop range, aReturnvalue, etc. - Nested calls —
nvl(compute(x), 0)yields bothnvlandcompute.
§/oracle evidence
DATABASE-REFERENCE.mdPL/SQL Language Reference — the call grammar (positional / named notation, package- qualified vs bare) drives what counts as a callee.LOW-LEVEL-CATALOGS.mdData Dictionary View Families —ALL_DEPENDENCIESwithDEPENDENCY_TYPEis the server-side mirror the depgraph cross-checksCallsedges against.
Structs§
- Call
Site - One extracted call site.
Enums§
Functions§
- extract_
call_ sites - Extract every call site from a lowered statement body.
- extract_
call_ sites_ bounded - Depth-bounded variant of
extract_call_sites. Returns the extracted call sites plus a [RecursionOutcome] recording whether (and how often) a nested body was abandoned at the recursion-depth cap rather than walked unbounded. The caller is responsible for emitting an honest typed diagnostic whenoutcome.limit_hit(R13 — never silently truncate).