From a80e252193096f22ae79fa03e66a0853ddae050e Mon Sep 17 00:00:00 2001 From: Akshay Date: Sat, 19 Feb 2022 20:44:59 +0530 Subject: parallelize statix-check --- bin/src/lint.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'bin/src/lint.rs') diff --git a/bin/src/lint.rs b/bin/src/lint.rs index 23a1d10..e1544e1 100644 --- a/bin/src/lint.rs +++ b/bin/src/lint.rs @@ -50,6 +50,7 @@ pub mod main { }; use lib::session::SessionInfo; + use rayon::prelude::*; pub fn main(check_config: CheckConfig) -> Result<(), StatixErr> { let vfs = check_config.vfs()?; @@ -59,9 +60,13 @@ pub mod main { let version = conf_file.version()?; let session = SessionInfo::from_version(version); let lint = |vfs_entry| lint_with(vfs_entry, &lints, &session); - let results = vfs.iter().map(lint).collect::>(); + let results = vfs + .par_iter() + .map(lint) + .filter(|lr| !lr.reports.is_empty()) + .collect::>(); - if results.iter().map(|r| r.reports.len()).sum::() != 0 { + if results.len() != 0 { for r in &results { stdout.write(&r, &vfs, check_config.format).unwrap(); } -- cgit v1.2.3