about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/from_iter_instead_of_collect.rs15
-rw-r--r--tests/ui/from_iter_instead_of_collect.stderr19
-rw-r--r--tests/ui/from_iter_instead_of_collect.stdout0
3 files changed, 34 insertions, 0 deletions
diff --git a/tests/ui/from_iter_instead_of_collect.rs b/tests/ui/from_iter_instead_of_collect.rs
new file mode 100644
index 00000000000..7a1bc64f4bd
--- /dev/null
+++ b/tests/ui/from_iter_instead_of_collect.rs
@@ -0,0 +1,15 @@
+#![warn(clippy::from_iter_instead_of_collect)]
+
+use std::collections::HashMap;
+use std::iter::FromIterator;
+
+fn main() {
+    {
+        let iter_expr = std::iter::repeat(5).take(5);
+
+        Vec::from_iter(iter_expr);
+        HashMap::<usize, &i8>::from_iter(vec![5, 5, 5, 5].iter().enumerate());
+        //let v: Vec<i32> = iter_expr.collect();
+        let a: Vec<i32> = Vec::new();
+    }
+}
diff --git a/tests/ui/from_iter_instead_of_collect.stderr b/tests/ui/from_iter_instead_of_collect.stderr
new file mode 100644
index 00000000000..4fadfb658fe
--- /dev/null
+++ b/tests/ui/from_iter_instead_of_collect.stderr
@@ -0,0 +1,19 @@
+error: use `.collect()` instead of `::from_iter()`
+  --> $DIR/from_iter_instead_of_collect.rs:10:5
+   |
+LL |     Vec::from_iter(iter_expr);
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: `-D clippy::from-iter-instead-of-collect` implied by `-D warnings`
+   = help: consider using `iter_expr.collect()`
+
+error: use `.collect()` instead of `::from_iter()`
+  --> $DIR/from_iter_instead_of_collect.rs:11:5
+   |
+LL |     HashMap::<usize, &i8>::from_iter(vec![5,5,5,5].iter().enumerate());
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = help: consider using `vec![5,5,5,5].iter().enumerate().collect()`
+
+error: aborting due to 2 previous errors
+
diff --git a/tests/ui/from_iter_instead_of_collect.stdout b/tests/ui/from_iter_instead_of_collect.stdout
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/ui/from_iter_instead_of_collect.stdout