Crate deadnix

Source
Expand description

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,
    warn_used_underscore: false,
}.find_dead_code(&ast.syntax());

for dead_code in &results {
    println!("unused binding: {}", dead_code.binding.name);
}

Modules§

report
Dead code reporting in human-readable and JSON formats

Structs§

Binding
A Nix variable binding
DeadCode
Instance of a dead binding
Settings
Analysis settings

Enums§

Scope
AST subtree that declares variables

Functions§

edit_dead_code
Deletes nodes from content