Skip to content

Commit e80dd87

Browse files
Artturinastro
authored andcommitted
Run cargo fmt
1 parent 356e287 commit e80dd87

8 files changed

+121
-127
lines changed

src/binding.rs

+3-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
use rnix::{
2-
ast::Ident,
3-
NixLanguage, SyntaxKind,
4-
};
1+
use rnix::{ast::Ident, NixLanguage, SyntaxKind};
52
use rowan::{api::SyntaxNode, ast::AstNode};
63

74
/// This string in a Nix comment above an unused declaration shall
@@ -26,11 +23,7 @@ pub struct Binding {
2623

2724
impl Binding {
2825
/// Create a new Binding
29-
pub fn new(
30-
name: Ident,
31-
decl_node: SyntaxNode<NixLanguage>,
32-
mortal: bool,
33-
) -> Self {
26+
pub fn new(name: Ident, decl_node: SyntaxNode<NixLanguage>, mortal: bool) -> Self {
3427
Binding {
3528
name,
3629
decl_node,
@@ -68,8 +61,7 @@ impl Binding {
6861
}
6962
}
7063

71-
SyntaxKind::TOKEN_COMMENT if token.text().contains(PRAGMA_SKIP) =>
72-
return true,
64+
SyntaxKind::TOKEN_COMMENT if token.text().contains(PRAGMA_SKIP) => return true,
7365

7466
_ => {}
7567
}

src/dead_code.rs

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::{binding::Binding, scope::Scope, usage};
2-
use rnix::{NixLanguage, SyntaxKind, ast::Inherit};
2+
use rnix::{ast::Inherit, NixLanguage, SyntaxKind};
33
use rowan::{api::SyntaxNode, ast::AstNode};
44
use std::{
55
collections::{HashMap, HashSet},
@@ -80,21 +80,20 @@ impl Settings {
8080
continue;
8181
}
8282

83-
if binding.is_mortal() && ! binding.has_pragma_skip() {
83+
if binding.is_mortal() && !binding.has_pragma_skip() {
8484
let unused = scope.bodies().all(|body|
8585
// remove this binding's own node
8686
body == binding.decl_node
8787
// excluding already unused results
8888
|| dead.contains(&body)
8989
|| is_dead_inherit(dead, &body)
9090
// or not used anywhere
91-
|| ! usage::find(&binding.name, &body)
92-
);
93-
if unused || (
94-
self.warn_used_underscore &&
95-
binding.name.syntax().text().char_at(0.into()) == Some('_') &&
96-
! unused
97-
) {
91+
|| ! usage::find(&binding.name, &body));
92+
if unused
93+
|| (self.warn_used_underscore
94+
&& binding.name.syntax().text().char_at(0.into()) == Some('_')
95+
&& !unused)
96+
{
9897
dead.insert(binding.decl_node.clone());
9998
results.insert(
10099
binding.decl_node.clone(),
@@ -118,7 +117,10 @@ impl Settings {
118117
}
119118

120119
/// is node body (`InheritFrom`) of an inherit clause that contains only dead bindings?
121-
fn is_dead_inherit(dead: &HashSet<SyntaxNode<NixLanguage>>, node: &SyntaxNode<NixLanguage>) -> bool {
120+
fn is_dead_inherit(
121+
dead: &HashSet<SyntaxNode<NixLanguage>>,
122+
node: &SyntaxNode<NixLanguage>,
123+
) -> bool {
122124
if node.kind() != SyntaxKind::NODE_INHERIT_FROM {
123125
return false;
124126
}

src/dead_code_tests.rs

+32-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![cfg(test)]
22

3-
use rowan::ast::AstNode;
43
use crate::dead_code::{DeadCode, Settings};
4+
use rowan::ast::AstNode;
55

66
fn run_settings(content: &str, settings: &Settings) -> Vec<DeadCode> {
77
let ast = rnix::Root::parse(content);
@@ -11,12 +11,15 @@ fn run_settings(content: &str, settings: &Settings) -> Vec<DeadCode> {
1111
}
1212

1313
fn run(content: &str) -> Vec<DeadCode> {
14-
run_settings(content, &Settings {
15-
no_lambda_arg: false,
16-
no_lambda_pattern_names: false,
17-
no_underscore: false,
18-
warn_used_underscore: false,
19-
})
14+
run_settings(
15+
content,
16+
&Settings {
17+
no_lambda_arg: false,
18+
no_lambda_pattern_names: false,
19+
no_underscore: false,
20+
warn_used_underscore: false,
21+
},
22+
)
2023
}
2124

2225
#[test]
@@ -109,7 +112,10 @@ fn let_in_inherit_shadowed() {
109112
assert_eq!(1, results.len());
110113
assert_eq!(results[0].binding.name.to_string(), "x");
111114
let first_pos = nix.find('x').unwrap();
112-
assert_eq!(usize::from(results[0].binding.name.syntax().text_range().start()), first_pos);
115+
assert_eq!(
116+
usize::from(results[0].binding.name.syntax().text_range().start()),
117+
first_pos
118+
);
113119
}
114120

115121
#[test]
@@ -342,9 +348,15 @@ in shadowed
342348
assert_eq!(1, results.len());
343349
assert_eq!(results[0].binding.name.to_string(), "shadowed");
344350
let first_pos = nix.find("shadowed").unwrap();
345-
assert_eq!(usize::from(results[0].binding.name.syntax().text_range().start()), first_pos);
351+
assert_eq!(
352+
usize::from(results[0].binding.name.syntax().text_range().start()),
353+
first_pos
354+
);
346355
let first_pos = nix.find("shadowed").unwrap();
347-
assert_eq!(usize::from(results[0].binding.name.syntax().text_range().start()), first_pos);
356+
assert_eq!(
357+
usize::from(results[0].binding.name.syntax().text_range().start()),
358+
first_pos
359+
);
348360
}
349361

350362
#[test]
@@ -489,14 +501,17 @@ fn let_args_string_splice() {
489501

490502
#[test]
491503
fn used_underscore_let() {
492-
let results = run_settings("
504+
let results = run_settings(
505+
"
493506
let _x = 23;
494507
in _x
495-
", &Settings {
496-
no_lambda_arg: false,
497-
no_lambda_pattern_names: false,
498-
no_underscore: false,
499-
warn_used_underscore: true,
500-
});
508+
",
509+
&Settings {
510+
no_lambda_arg: false,
511+
no_lambda_pattern_names: false,
512+
no_underscore: false,
513+
warn_used_underscore: true,
514+
},
515+
);
501516
assert_eq!(1, results.len());
502517
}

src/edit.rs

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::{dead_code::DeadCode, scope::Scope};
22
use rnix::{
3-
ast::{Inherit, LetIn, HasEntry},
3+
ast::{HasEntry, Inherit, LetIn},
44
NixLanguage, SyntaxKind,
55
};
66
use rowan::{api::SyntaxNode, ast::AstNode};
@@ -62,9 +62,9 @@ fn dead_to_edit(dead_code: DeadCode) -> Option<Edit> {
6262
let mut replacement = None;
6363
match dead_code.scope {
6464
Scope::LambdaPattern(pattern, _) => {
65-
if pattern
66-
.pat_bind().is_some_and(|at| at.ident().expect("at.ident").syntax() == &dead_code.binding.decl_node)
67-
{
65+
if pattern.pat_bind().is_some_and(|at| {
66+
at.ident().expect("at.ident").syntax() == &dead_code.binding.decl_node
67+
}) {
6868
if let Some(pattern_bind_node) = pattern
6969
.syntax()
7070
.children()
@@ -160,7 +160,14 @@ fn remove_empty_scopes(node: &SyntaxNode<NixLanguage>, edits: &mut Vec<Edit>) {
160160
&& let_in.attrpath_values().next().is_none()
161161
{
162162
let start = usize::from(node.text_range().start());
163-
let end = usize::from(let_in.body().expect("let_in.body").syntax().text_range().start());
163+
let end = usize::from(
164+
let_in
165+
.body()
166+
.expect("let_in.body")
167+
.syntax()
168+
.text_range()
169+
.start(),
170+
);
164171
edits.push(Edit {
165172
start,
166173
end,

src/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
//! }
2323
//! ```
2424
25-
2625
#![deny(unsafe_code, missing_docs, bare_trait_objects)]
2726

2827
mod binding;
@@ -35,6 +34,6 @@ mod scope;
3534
mod usage;
3635

3736
pub use binding::Binding;
38-
pub use scope::Scope;
3937
pub use dead_code::{DeadCode, Settings};
4038
pub use edit::edit_dead_code;
39+
pub use scope::Scope;

src/main.rs

+24-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clap::{Arg, ArgAction, Command};
22
#[cfg(feature = "json-out")]
33
use serde_json::json;
4-
use std::{fs, collections::HashSet, path::Path};
4+
use std::{collections::HashSet, fs, path::Path};
55

66
mod binding;
77
mod dead_code;
@@ -43,8 +43,9 @@ fn main() {
4343
.action(ArgAction::SetTrue)
4444
.short('_')
4545
.long("no-underscore")
46-
.help("Don't check any bindings that start with a _\n\
47-
(Lambda arguments starting with _ are not checked anyway.)"
46+
.help(
47+
"Don't check any bindings that start with a _\n\
48+
(Lambda arguments starting with _ are not checked anyway.)",
4849
),
4950
)
5051
.arg(
@@ -126,22 +127,25 @@ fn main() {
126127
let is_visible = if matches.get_flag("HIDDEN") {
127128
|_: &walkdir::DirEntry| true
128129
} else {
129-
|entry: &walkdir::DirEntry|
130-
entry.file_name().to_str().is_some_and(|s| s == "." || s == ".." || ! s.starts_with('.'))
130+
|entry: &walkdir::DirEntry| {
131+
entry
132+
.file_name()
133+
.to_str()
134+
.is_some_and(|s| s == "." || s == ".." || !s.starts_with('.'))
135+
}
131136
};
132-
let is_included: Box<dyn Fn(&String) -> bool> = if let Some(excludes) = matches.get_many::<String>("EXCLUDES") {
133-
let excludes = excludes.filter_map(|exclude|
134-
Path::new(exclude).canonicalize().ok()
135-
).collect::<HashSet<_>>();
136-
Box::new(move |s| {
137-
let s = Path::new(s).canonicalize().unwrap();
138-
! excludes.iter().any(|exclude| {
139-
s.starts_with(exclude)
137+
let is_included: Box<dyn Fn(&String) -> bool> =
138+
if let Some(excludes) = matches.get_many::<String>("EXCLUDES") {
139+
let excludes = excludes
140+
.filter_map(|exclude| Path::new(exclude).canonicalize().ok())
141+
.collect::<HashSet<_>>();
142+
Box::new(move |s| {
143+
let s = Path::new(s).canonicalize().unwrap();
144+
!excludes.iter().any(|exclude| s.starts_with(exclude))
140145
})
141-
})
142-
} else {
143-
Box::new(|_| true)
144-
};
146+
} else {
147+
Box::new(|_| true)
148+
};
145149
let output_format = matches
146150
.get_one::<String>("OUTPUT_FORMAT")
147151
.map(String::as_str);
@@ -172,10 +176,11 @@ fn main() {
172176
entry.file_type().is_file()
173177
&& entry
174178
.path()
175-
.extension().is_some_and(|ext| ext.eq_ignore_ascii_case("nix"))
179+
.extension()
180+
.is_some_and(|ext| ext.eq_ignore_ascii_case("nix"))
176181
})
177182
.map(|entry| entry.path().display().to_string())
178-
.filter(&is_included)
183+
.filter(&is_included),
179184
),
180185

181186
// single file

0 commit comments

Comments
 (0)