From e8281ca28b0dc49fc9f793e60c97dc266027ff16 Mon Sep 17 00:00:00 2001
From: Rohan Jain <crodjer@gmail.com>
Date: Wed, 8 Apr 2020 10:00:29 +0530
Subject: [PATCH] fix(run): compile clippy exercise files

Additionally to running clippy, also compile the exercise file so that
`rustling run clippy1` works after a successful completion of the
exercise.

closes #291

Signed-off-by: Rohan Jain <crodjer@gmail.com>
---
 src/exercise.rs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/exercise.rs b/src/exercise.rs
index 30b1864..d1eaa1a 100644
--- a/src/exercise.rs
+++ b/src/exercise.rs
@@ -98,6 +98,15 @@ path = "{}.rs""#,
                 );
                 fs::write(CLIPPY_CARGO_TOML_PATH, cargo_toml)
                     .expect("Failed to write 📎 Clippy 📎 Cargo.toml file.");
+                // To support the ability to run the clipy exercises, build
+                // an executable, in addition to running clippy. With a
+                // compilation failure, this would silently fail. But we expect
+                // clippy to reflect the same failure while compiling later.
+                Command::new("rustc")
+                    .args(&[self.path.to_str().unwrap(), "-o", &temp_file()])
+                    .args(RUSTC_COLOR_ARGS)
+                    .output()
+                    .expect("Failed to compile!");
                 // Due to an issue with Clippy, a cargo clean is required to catch all lints.
                 // See https://github.com/rust-lang/rust-clippy/issues/2604
                 // This is already fixed on master branch. See this issue to track merging into Cargo: