ryo-analysis 0.1.0

Code graph and discovery engine for the RYO project
Documentation
//! Query module - Code graph and query infrastructure.
//!
//! Provides:
//! - `CodeGraphV2`: Symbol relationship graph (DoD-based, petgraph-free)
//! - `GraphBuilderV2`: Build CodeGraphV2 from parsed code
//! - `QueryBuilder`: Fluent query DSL
//! - `DataFlowGraphV2`: Data flow analysis (DoD-based, String-free)
//! - `DataFlowBuilderWorkspace`: Build DataFlowGraphV2 from parsed code
//! - `TypeFlowGraphV2`: Type relationship analysis (V2, DoD-based)
//! - `SpecFlowGraphV2`: Domain semantics analysis (V2, DoD-based)
//! - `BorrowTrackerV2`: Lightweight borrow state tracking (VarId-based)

mod borrow_v2;
mod builder_dataflow_v2;
mod builder_graph_v2;
mod builder_typeflow_v2;
mod dataflow_v2;
mod derive_index;
mod dsl;
mod graph_v2;
pub mod index_vec;
mod lock_analyzer_v2;
mod lock_v2;
mod reference_integrity;
mod specflow_common;
mod specflow_v2;
mod std_impls;
mod type_alias_registry;
mod type_impact;
mod typeflow_v2;
mod unused_symbol;
mod var_id;

// Borrow V2 (VarId-based, for DataFlowGraphV2)
pub use borrow_v2::{
    ActiveBorrowV2, BorrowAnalysis, BorrowConflict, BorrowKind, BorrowStateV2, BorrowTrackerV2,
    MoveError,
};
pub use builder_dataflow_v2::DataFlowBuilderWorkspace;
pub use builder_graph_v2::GraphBuilderV2;
pub use builder_typeflow_v2::TypeFlowBuilderV2;
pub use derive_index::{DeriveIndex, DeriveIndexStats};
// DataFlow V2 (DoD-based, String-free)
pub use dataflow_v2::{
    DataFlowGraphV2, DataFlowStats, FlowChain, FlowData, FlowEdge, FlowEdgeData, FlowId, FlowKind,
    FlowStep, Guard, GuardKind, ScopeData, ScopeId, ScopeKind, VarData, VarKind, VarNode,
};
pub use dsl::QueryBuilder;
// CodeGraph V2 (DoD-based, petgraph-free)
pub use graph_v2::{
    ChainDirection, ChainNode, ChainResult, CodeEdgeV2, CodeGraphV2, EdgeData, EdgeId,
    MatchExprDataV2, MatchExprId,
};
// Lock V2 (VarId-based, for DataFlowGraphV2)
pub use lock_analyzer_v2::{LockGranularityAnalyzerV2, LockStatsV2};
// Reference integrity analysis
pub use lock_v2::{
    AccessKind, CriticalSectionV2, FieldAccessV2, LockAcquisitionV2, LockSuggestion, LockTrackerV2,
    LockType,
};
pub use reference_integrity::{
    ReferenceIntegrityChecker, ReferenceIntegrityIssue, ReferenceIntegrityResult,
};
// TypeFlow V2 (DoD-based, String-free)
pub use typeflow_v2::{
    DefinitionData, GenericArgData, LookupTable, NodeKind, RefKind, TraitBoundData, TypeDefKind,
    TypeFlowGraphV2, TypeImpactV2, TypeNodeId, UsageContext, UsageData,
};
// SpecFlow shared types
pub use specflow_common::{CommentDirective, ConstraintKind, IntentKind, SpecSource};
// SpecFlow V2 (DoD-based, SymbolId-based)
pub use specflow_v2::{
    ConstraintData, GroupData, IntentData, SpecAliasData, SpecFlowBuilderV2, SpecFlowGraphV2,
    SpecLookupTable, SpecNodeId, SpecNodeKind,
};
// Std library trait implementation cache
pub use std_impls::StdImplCache;
pub use type_alias_registry::{
    SpecAliasInfo, TypeAliasEntry, TypeAliasRegistry, TypeAliasRegistryBuilder,
};
// Type impact analysis
pub use type_impact::{TypeImpactChecker, TypeImpactIssue, TypeImpactResult};
// Unused symbol analysis
pub use unused_symbol::{UnusedSymbol, UnusedSymbolChecker, UnusedSymbolResult};
// VarId (internal variable identifier for DataFlowGraph)
pub use var_id::{VarId, VarSymbolMapping};