From a80e252193096f22ae79fa03e66a0853ddae050e Mon Sep 17 00:00:00 2001
From: Akshay <nerdy@peppe.rs>
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')

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::<Vec<_>>();
+        let results = vfs
+            .par_iter()
+            .map(lint)
+            .filter(|lr| !lr.reports.is_empty())
+            .collect::<Vec<_>>();
 
-        if results.iter().map(|r| r.reports.len()).sum::<usize>() != 0 {
+        if results.len() != 0 {
             for r in &results {
                 stdout.write(&r, &vfs, check_config.format).unwrap();
             }
-- 
cgit v1.2.3