use super::cfg_detection::is_cfg_gated;
use super::types::{
CoverageData, CrossLangReferenceGraph, DeadCodeItem, DeadCodeReport, DeadCodeSummary,
DeadCodeType, HierarchicalBitSet, VTableResolver,
};
use crate::models::dag::DependencyGraph;
use crate::models::unified_ast::{AstDag, NodeKey};
use parking_lot::RwLock;
use std::collections::{HashMap, HashSet};
use std::path::Path;
use std::sync::Arc;
pub struct DeadCodeAnalyzer {
pub(crate) reachability: Arc<RwLock<HierarchicalBitSet>>,
pub(crate) references: Arc<RwLock<CrossLangReferenceGraph>>,
#[allow(dead_code)]
pub(crate) vtable_analysis: Arc<RwLock<VTableResolver>>,
coverage_map: Option<Arc<CoverageData>>,
pub(crate) entry_points: Arc<RwLock<HashSet<NodeKey>>>,
}
include!("analysis_core.rs");
include!("analysis_classification.rs");
include!("analysis_project_context.rs");
include!("analysis_ranking.rs");
include!("analysis_pure_functions.rs");
include!("analysis_tests.rs");