summaryrefslogtreecommitdiff
path: root/exercises/22_clippy
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/22_clippy')
-rw-r--r--exercises/22_clippy/README.md10
-rw-r--r--exercises/22_clippy/clippy1.rs26
-rw-r--r--exercises/22_clippy/clippy2.rs15
-rw-r--r--exercises/22_clippy/clippy3.rs30
4 files changed, 81 insertions, 0 deletions
diff --git a/exercises/22_clippy/README.md b/exercises/22_clippy/README.md
new file mode 100644
index 0000000..55438af
--- /dev/null
+++ b/exercises/22_clippy/README.md
@@ -0,0 +1,10 @@
+# Clippy
+
+The Clippy tool is a collection of lints to analyze your code so you can catch common mistakes and improve your Rust code.
+
+If you used the installation script for Rustlings, Clippy should be already installed.
+If not you can install it manually via `rustup component add clippy`.
+
+## Further information
+
+- [GitHub Repository](https://github.com/rust-lang/rust-clippy).
diff --git a/exercises/22_clippy/clippy1.rs b/exercises/22_clippy/clippy1.rs
new file mode 100644
index 0000000..95c0141
--- /dev/null
+++ b/exercises/22_clippy/clippy1.rs
@@ -0,0 +1,26 @@
+// clippy1.rs
+//
+// The Clippy tool is a collection of lints to analyze your code so you can
+// catch common mistakes and improve your Rust code.
+//
+// For these exercises the code will fail to compile when there are clippy
+// warnings check clippy's suggestions from the output to solve the exercise.
+//
+// Execute `rustlings hint clippy1` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+use std::f32;
+
+fn main() {
+ let pi = 3.14f32;
+ let radius = 5.00f32;
+
+ let area = pi * f32::powi(radius, 2);
+
+ println!(
+ "The area of a circle with radius {:.2} is {:.5}!",
+ radius, area
+ )
+}
diff --git a/exercises/22_clippy/clippy2.rs b/exercises/22_clippy/clippy2.rs
new file mode 100644
index 0000000..9b87a0b
--- /dev/null
+++ b/exercises/22_clippy/clippy2.rs
@@ -0,0 +1,15 @@
+// clippy2.rs
+//
+// Execute `rustlings hint clippy2` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+fn main() {
+ let mut res = 42;
+ let option = Some(12);
+ for x in option {
+ res += x;
+ }
+ println!("{}", res);
+}
diff --git a/exercises/22_clippy/clippy3.rs b/exercises/22_clippy/clippy3.rs
new file mode 100644
index 0000000..5a95f5b
--- /dev/null
+++ b/exercises/22_clippy/clippy3.rs
@@ -0,0 +1,30 @@
+// clippy3.rs
+//
+// Here's a couple more easy Clippy fixes, so you can see its utility.
+// No hints.
+
+// I AM NOT DONE
+
+#[allow(unused_variables, unused_assignments)]
+fn main() {
+ let my_option: Option<()> = None;
+ if my_option.is_none() {
+ my_option.unwrap();
+ }
+
+ let my_arr = &[
+ -1, -2, -3
+ -4, -5, -6
+ ];
+ println!("My array! Here it is: {:?}", my_arr);
+
+ let my_empty_vec = vec![1, 2, 3, 4, 5].resize(0, 5);
+ println!("This Vec is empty, see? {:?}", my_empty_vec);
+
+ let mut value_a = 45;
+ let mut value_b = 66;
+ // Let's swap these two!
+ value_a = value_b;
+ value_b = value_a;
+ println!("value a: {}; value b: {}", value_a, value_b);
+}