pub struct SemanticFileAnalysis { /* private fields */ }Expand description
Cached file-level semantic analysis.
Immutable after construction. Collections use Box<[T]> or Arc<[T]>
depending on whether downstream consumers share ownership. Per-function
summaries are stored in a sorted BTreeMap keyed by function name.
Implementations§
Source§impl SemanticFileAnalysis
impl SemanticFileAnalysis
Sourcepub fn call_graph(&self) -> &[(Box<str>, Box<str>)]
pub fn call_graph(&self) -> &[(Box<str>, Box<str>)]
Deduplicated (caller, callee) pairs for this file’s call graph.
Sourcepub fn data_flows(&self) -> &Arc<[DataFlowFact]> ⓘ
pub fn data_flows(&self) -> &Arc<[DataFlowFact]> ⓘ
All data flow facts detected in this file (taint, quality, perf, concurrency).
Returns a shared Arc — callers that need ownership clone the Arc,
not the individual facts.
Sourcepub fn function(&self, name: &str) -> Option<FunctionAnalysisSummary<'_>>
pub fn function(&self, name: &str) -> Option<FunctionAnalysisSummary<'_>>
Borrowed view into a named function’s precomputed semantic summary.
Returns None when the function is not found in the file or has
no body (e.g., trait method declarations).
Sourcepub fn resolve_type(&self, line: usize, column: usize) -> Option<&str>
pub fn resolve_type(&self, line: usize, column: usize) -> Option<&str>
Resolve the type at a (line, column) position from the cached table.
Uses 1-based line numbers and 0-based column offsets. Returns None
when the position was not resolvable during file analysis construction.
Sourcepub fn is_line_reachable(&self, line: usize) -> bool
pub fn is_line_reachable(&self, line: usize) -> bool
Check whether a line falls within a function reachable from entry points.
Sourcepub fn check_reachability_batch(&self, lines: &[usize]) -> Box<[bool]>
pub fn check_reachability_batch(&self, lines: &[usize]) -> Box<[bool]>
Batch reachability check: one bool per input line.
Auto Trait Implementations§
impl Freeze for SemanticFileAnalysis
impl RefUnwindSafe for SemanticFileAnalysis
impl Send for SemanticFileAnalysis
impl Sync for SemanticFileAnalysis
impl Unpin for SemanticFileAnalysis
impl UnsafeUnpin for SemanticFileAnalysis
impl UnwindSafe for SemanticFileAnalysis
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more