1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
//! Scan `.nix` files for dead code (unused variable bindings).
//!
//! ```
//! let content = "
//! let
//! foo = {};
//! inherit (foo) bar baz;
//! in baz
//! ";
//! let ast = rnix::Root::parse(content);
//! assert_eq!(0, ast.errors().len());
//!
//! let results = deadnix::Settings {
//! no_lambda_arg: false,
//! no_lambda_pattern_names: false,
//! no_underscore: false,
//! }.find_dead_code(&ast.syntax());
//!
//! for dead_code in &results {
//! println!("unused binding: {}", dead_code.binding.name);
//! }
//! ```
#![deny(unsafe_code, missing_docs, bare_trait_objects)]
mod binding;
mod dead_code;
mod dead_code_tests;
mod edit;
mod edit_tests;
pub mod report;
mod scope;
mod usage;
pub use binding::Binding;
pub use scope::Scope;
pub use dead_code::{DeadCode, Settings};
pub use edit::edit_dead_code;