Skip to main content

Module analysis

Module analysis 

Source
Expand description

Advanced Analysis Module

This module provides advanced analysis capabilities including:

  • Rust-specific call graph analysis with trait dispatch and function pointers
  • Design pattern recognition (Observer, Factory, Callback)
  • Cross-module dependency tracking
  • Multi-pass complexity analysis with attribution
  • Diagnostic reporting and insights generation
  • I/O and side effect detection for responsibility classification
  • Call graph metrics and pattern detection for responsibility analysis
  • Purity analysis for function classification and refactoring guidance
  • Multi-signal aggregation for high-accuracy responsibility classification
  • Type signature-based classification for improved responsibility detection
  • Effect-based analysis patterns for testability and composability (Spec 207)
  • Data flow analysis for state transition and mutation tracking (Spec 201)
  • Analysis workflow state machine with checkpoint/resume support (Spec 202)

Re-exports§

pub use call_graph::AnalysisConfig;
pub use call_graph::CrossModuleTracker;
pub use call_graph::DeadCodeAnalysis;
pub use call_graph::FrameworkPatternDetector;
pub use call_graph::FunctionPointerTracker;
pub use call_graph::RustCallGraph;
pub use call_graph::RustCallGraphBuilder;
pub use call_graph::TraitRegistry;
pub use context_detection::ContextAnalysis;
pub use context_detection::ContextDetector;
pub use context_detection::FunctionContext;
pub use data_flow::ControlFlowGraph;
pub use data_flow::DataFlowAnalysis;
pub use data_flow::VarId;
pub use file_context::FileContext;
pub use file_context::FileContextDetector;
pub use file_context::TestFileConfidence;
pub use framework_patterns::CustomPattern;
pub use framework_patterns::FrameworkPattern as NewFrameworkPattern;
pub use framework_patterns::FrameworkPatternRegistry;
pub use framework_patterns::FrameworkType;
pub use framework_patterns_multi::FrameworkDetector as MultiLangFrameworkDetector;
pub use framework_patterns_multi::FrameworkMatch;
pub use framework_patterns_multi::Language as FrameworkLanguage;
pub use framework_patterns_multi::PatternMatcher as MultiLangPatternMatcher;
pub use functional_composition::analyze_composition;
pub use functional_composition::analyze_purity;
pub use functional_composition::detect_pipelines;
pub use functional_composition::score_composition;
pub use functional_composition::CompositionMetrics;
pub use functional_composition::FunctionalAnalysisConfig;
pub use functional_composition::Pipeline;
pub use functional_composition::PipelineStage;
pub use functional_composition::PurityMetrics;
pub use functional_composition::SideEffectKind;
pub use functional_composition::TerminalOp;
pub use graph_metrics::compute_betweenness_centrality;
pub use graph_metrics::compute_clustering_coefficient;
pub use graph_metrics::compute_depth_from_entry_points;
pub use graph_metrics::CallGraphPattern;
pub use graph_metrics::GraphMetrics;
pub use graph_metrics::PatternDetector as CallGraphPatternDetector;
pub use graph_metrics::ResponsibilityClassification;
pub use io_detection::CollectionOp as IoCollectionOp;
pub use io_detection::IoDetector;
pub use io_detection::IoOperation;
pub use io_detection::IoPatternSet;
pub use io_detection::IoProfile;
pub use io_detection::Language;
pub use io_detection::OutputStream;
pub use io_detection::QueryType;
pub use io_detection::Responsibility;
pub use io_detection::SideEffect;
pub use module_structure::ComponentCouplingAnalysis;
pub use module_structure::ComponentDependencyGraph;
pub use module_structure::Difficulty;
pub use module_structure::FunctionCounts;
pub use module_structure::FunctionGroup;
pub use module_structure::ModuleComponent;
pub use module_structure::ModuleFacadeInfo;
pub use module_structure::ModuleStructure;
pub use module_structure::ModuleStructureAnalyzer;
pub use module_structure::OrganizationQuality;
pub use module_structure::PathDeclaration;
pub use module_structure::SplitRecommendation;
pub use multi_signal_aggregation::AggregatedClassification;
pub use multi_signal_aggregation::AggregationConfig;
pub use multi_signal_aggregation::ConflictResolutionStrategy;
pub use multi_signal_aggregation::ResponsibilityAggregator;
pub use multi_signal_aggregation::ResponsibilityCategory;
pub use multi_signal_aggregation::SignalEvidence;
pub use multi_signal_aggregation::SignalSet;
pub use multi_signal_aggregation::SignalType;
pub use multi_signal_aggregation::SignalWeights;
pub use patterns::callback::CallbackPatternRecognizer;
pub use patterns::factory::FactoryPatternRecognizer;
pub use patterns::observer::ObserverPatternRecognizer;
pub use patterns::Implementation;
pub use patterns::PatternDetector;
pub use patterns::PatternInstance;
pub use patterns::PatternRecognizer;
pub use patterns::PatternType;
pub use patterns::UsageSite;
pub use purity_analysis::EffortLevel;
pub use purity_analysis::PurityAnalysis;
pub use purity_analysis::PurityAnalyzer;
pub use purity_analysis::PurityLevel;
pub use purity_analysis::PurityRefactoringOpportunity;
pub use purity_analysis::PurityViolation;
pub use purity_analysis::RefactoringType;
pub use purity_propagation::PurityCache;
pub use purity_propagation::PurityCallGraphAdapter;
pub use purity_propagation::PurityPropagator;
pub use purity_propagation::PurityReason;
pub use purity_propagation::PurityResult;
pub use rust_patterns::ImplContext;
pub use rust_patterns::RustFunctionContext;
pub use rust_patterns::RustPattern;
pub use rust_patterns::RustPatternDetector;
pub use rust_patterns::RustPatternResult;
pub use rust_patterns::RustSpecificClassification;
pub use type_flow_tracker::CollectionOp;
pub use type_flow_tracker::Location;
pub use type_flow_tracker::TypeFlowTracker;
pub use type_flow_tracker::TypeId;
pub use type_flow_tracker::TypeInfo;
pub use type_signatures::extract_rust_signature;
pub use type_signatures::CanonicalType;
pub use type_signatures::GenericBound;
pub use type_signatures::Parameter;
pub use type_signatures::TypeBasedClassification;
pub use type_signatures::TypeMatcher;
pub use type_signatures::TypeNormalizer;
pub use type_signatures::TypePattern;
pub use type_signatures::TypePatternLibrary;
pub use type_signatures::TypeSignature;
pub use type_signatures::TypeSignatureAnalyzer;
pub use workflow::load_checkpoint;
pub use workflow::run_analysis;
pub use workflow::save_checkpoint;
pub use workflow::AnalysisConfig as WorkflowConfig;
pub use workflow::AnalysisEnv;
pub use workflow::AnalysisPhase;
pub use workflow::AnalysisResults as WorkflowResults;
pub use workflow::AnalysisState;
pub use workflow::FileSystem;
pub use workflow::ProgressReporter;
pub use workflow::RealAnalysisEnv;
pub use workflow::WorkflowRunner;

Modules§

attribution
Complexity attribution analysis for source-level insights.
call_graph
Rust call graph analysis with trait dispatch and function pointer tracking.
context_detection
Context detection for function and method analysis.
data_flow
Data flow analysis for Rust code.
diagnostics
Diagnostic reporting for complexity analysis.
effects
Effect utilities for analysis modules.
file_context
File-level context detection for analysis.
framework_patterns
Framework pattern detection for Rust applications.
framework_patterns_multi
Multi-language framework pattern detection.
function_visitor
Function body visitor for statement analysis.
functional_composition
Functional composition analysis.
graph_metrics
Call graph metrics and pattern detection.
io_detection
I/O and side effect detection.
module_structure
Module structure analysis.
multi_pass
Multi-pass complexity analysis engine.
multi_pass_effects
Effect-based multi-pass analysis.
multi_signal_aggregation
Multi-signal responsibility aggregation.
patterns
Design pattern recognition.
purity_analysis
Purity analysis for function classification.
purity_propagation
Cross-function purity propagation.
rust_patterns
Rust-specific pattern detection.
type_flow_tracker
Type flow tracking for analysis.
type_signatures
Type signature-based classification.
workflow
Analysis workflow state machine.