about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-12-10 11:14:49 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-12-10 12:02:18 -0800
commit2924d38dd9ba0502264d5b8652ffd65f3f43f0df (patch)
tree6e5870b9e61a62de3642ad002d24763b24cf0158
parent5d1adbb629623b10324ba32a0ff2179b9358cab7 (diff)
downloadrust-2924d38dd9ba0502264d5b8652ffd65f3f43f0df.tar.gz
rust-2924d38dd9ba0502264d5b8652ffd65f3f43f0df.zip
Add tests
-rw-r--r--src/test/ui/type-inference/or_else-multiple-type-params.rs10
-rw-r--r--src/test/ui/type-inference/or_else-multiple-type-params.stderr12
-rw-r--r--src/test/ui/type-inference/sort_by_key.rs5
-rw-r--r--src/test/ui/type-inference/sort_by_key.stderr11
4 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/type-inference/or_else-multiple-type-params.rs b/src/test/ui/type-inference/or_else-multiple-type-params.rs
new file mode 100644
index 00000000000..b15de2a4559
--- /dev/null
+++ b/src/test/ui/type-inference/or_else-multiple-type-params.rs
@@ -0,0 +1,10 @@
+use std::process::{Command, Stdio};
+
+fn main() {
+    let process = Command::new("wc")
+        .stdout(Stdio::piped())
+        .spawn()
+        .or_else(|err| { //~ ERROR type annotations needed
+            panic!("oh no: {:?}", err);
+        }).unwrap();
+}
diff --git a/src/test/ui/type-inference/or_else-multiple-type-params.stderr b/src/test/ui/type-inference/or_else-multiple-type-params.stderr
new file mode 100644
index 00000000000..a15904d01f6
--- /dev/null
+++ b/src/test/ui/type-inference/or_else-multiple-type-params.stderr
@@ -0,0 +1,12 @@
+error[E0282]: type annotations needed
+  --> $DIR/or_else-multiple-type-params.rs:7:10
+   |
+LL |         .or_else(|err| {
+   |          ^^^^^^^
+   |          |
+   |          cannot infer type for `F`
+   |          help: consider specifying the type arguments in the method call: `or_else::<F, O>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.
diff --git a/src/test/ui/type-inference/sort_by_key.rs b/src/test/ui/type-inference/sort_by_key.rs
new file mode 100644
index 00000000000..afc4d90b865
--- /dev/null
+++ b/src/test/ui/type-inference/sort_by_key.rs
@@ -0,0 +1,5 @@
+fn main() {
+    let mut lst: [([i32; 10], bool); 10] = [([0; 10], false); 10];
+    lst.sort_by_key(|&(v, _)| v.iter().sum()); //~ ERROR type annotations needed
+    println!("{:?}", lst);
+}
diff --git a/src/test/ui/type-inference/sort_by_key.stderr b/src/test/ui/type-inference/sort_by_key.stderr
new file mode 100644
index 00000000000..76b49ee1f23
--- /dev/null
+++ b/src/test/ui/type-inference/sort_by_key.stderr
@@ -0,0 +1,11 @@
+error[E0282]: type annotations needed
+  --> $DIR/sort_by_key.rs:3:9
+   |
+LL |     lst.sort_by_key(|&(v, _)| v.iter().sum());
+   |         ^^^^^^^^^^^                    --- help: consider specifying the type argument in the method call: `sum::<S>`
+   |         |
+   |         cannot infer type for `K`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0282`.