pub mod builder;
pub mod cross_file_types;
pub mod graph_utils;
pub mod import_resolver;
pub mod interner;
pub mod languages;
pub mod module_index;
pub mod resolver;
pub mod type_aware_resolver;
pub mod type_resolver;
mod imports;
mod module_path;
mod resolution;
mod scanner;
mod types;
mod var_types;
pub mod builder_v2;
#[cfg(feature = "experimental_callgraph")]
pub mod serialization;
#[cfg(feature = "experimental_callgraph")]
pub mod compat;
#[cfg(feature = "experimental_callgraph")]
#[cfg(test)]
mod builder_v2_test;
#[cfg(feature = "experimental_callgraph")]
#[cfg(test)]
mod serialization_test;
#[cfg(feature = "experimental_callgraph")]
#[cfg(test)]
mod compat_test;
#[cfg(feature = "experimental_callgraph")]
#[cfg(test)]
mod cross_file_test;
#[cfg(test)]
mod hypotheses_test;
pub use builder::build_project_call_graph;
pub use cross_file_types::{
CallGraphIR,
CallSite,
CallType,
ClassDef,
CrossFileCallEdge,
FileIR,
FileIRBuilder,
FuncDef,
FuncIndexProxy,
FuncIndexProxyMut,
ImportDef,
ImportKind,
ModuleInfo,
ProjectCallGraphV2,
ReExportChain,
ResolvedImport,
VarType,
IR_VERSION,
};
pub use graph_utils::{build_forward_graph, build_reverse_graph, collect_nodes};
pub use import_resolver::{
CacheStats, ImportResolver, ReExportTracer, TracedReExport, DEFAULT_CACHE_SIZE,
DEFAULT_MAX_DEPTH,
};
pub use languages::{
base::{
determine_call_type, get_node_text, make_import, normalize_path, read_source_safely,
walk_tree,
},
extract_calls_for_language,
parse_imports_for_language,
BuildError,
CallGraphLanguageSupport,
LanguageRegistry,
ParseError,
};
pub use module_index::{ModuleIndex, ModuleIndexError};
pub use resolver::ModuleResolver;
pub use type_resolver::{
expand_union_type,
find_enclosing_class,
resolve_annotation,
resolve_go_receiver_type,
resolve_python_receiver_type,
resolve_receiver_type,
resolve_rust_receiver_type,
resolve_self_method,
resolve_typescript_receiver_type,
safe_read_file,
validate_path_utf8,
ClassDefinition,
ResolutionMethod,
ResolvedType,
SkipReason,
TypeResolver,
MAX_UNION_EXPANSION,
};
pub use builder_v2::{
build_project_call_graph_v2,
filter_tldrignored,
BuildConfig,
BuildDiagnostics,
BuildError as BuildErrorV2,
BuildResult,
ClassEntry,
ClassIndex,
FuncEntry,
FuncIndex,
ParseDiagnostic,
ResolutionWarning,
SkipReason as BuildSkipReason,
};
#[cfg(feature = "experimental_callgraph")]
pub use compat::{
build_call_graph,
callgraph_ir_to_old,
callgraph_ir_to_v1,
compare_builders,
format_edges_compatible,
funcdef_to_functioninfo,
importdef_to_importinfo,
normalize_edge,
project_graph_to_edges,
CallEdge as CompatCallEdge,
CallGraphOutput,
ComparisonResult,
FunctionInfo,
ImportInfo,
NormalizedEdge,
};