fix(natu): sort let-order scopes
This commit is contained in:
@@ -40,14 +40,25 @@ impl std::fmt::Display for Report {
|
||||
file.path.display()
|
||||
)?;
|
||||
|
||||
for finding in self.diagnostics.iter().filter(|candidate| {
|
||||
candidate.file_id == diagnostic.file_id
|
||||
&& candidate.finding.rule_id == "let_order"
|
||||
}) {
|
||||
let mut findings = self
|
||||
.diagnostics
|
||||
.iter()
|
||||
.filter(|candidate| {
|
||||
candidate.file_id == diagnostic.file_id
|
||||
&& candidate.finding.rule_id == "let_order"
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
findings.sort_by_key(|finding| finding.finding.range.start);
|
||||
|
||||
for finding in findings {
|
||||
let (start, _) = line_range(&file.source, finding.finding.range);
|
||||
let expected_order =
|
||||
finding.finding.expected_order.as_ref().expect("let order");
|
||||
writeln!(formatter, " line {start}: {}", expected_order.join(", "))?;
|
||||
writeln!(
|
||||
formatter,
|
||||
" bindings starting at line {start}: {}",
|
||||
expected_order.join(", ")
|
||||
)?;
|
||||
}
|
||||
|
||||
continue;
|
||||
|
||||
@@ -58,8 +58,8 @@ fn natu_reports_out_of_order_let_bindings() -> googletest::Result<()> {
|
||||
"testdata/lint_findings.nix:12 [manual_inherit_from] Use `inherit` for this selected attribute\n",
|
||||
"testdata/lint_findings.nix:13 [unquoted_uri] URI literals should be quoted\n",
|
||||
"testdata/lint_findings.nix [let_order] Let bindings must follow dependency order\n",
|
||||
" line 5: nestedSecond, nestedFirst\n",
|
||||
" line 2: first, second, nested\n",
|
||||
" bindings starting at line 2: first, second, nested\n",
|
||||
" bindings starting at line 5: nestedSecond, nestedFirst\n",
|
||||
))
|
||||
);
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user