From 2924d38dd9ba0502264d5b8652ffd65f3f43f0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Tue, 10 Dec 2019 11:14:49 -0800 Subject: [PATCH] Add tests --- .../type-inference/or_else-multiple-type-params.rs | 10 ++++++++++ .../or_else-multiple-type-params.stderr | 12 ++++++++++++ src/test/ui/type-inference/sort_by_key.rs | 5 +++++ src/test/ui/type-inference/sort_by_key.stderr | 11 +++++++++++ 4 files changed, 38 insertions(+) create mode 100644 src/test/ui/type-inference/or_else-multiple-type-params.rs create mode 100644 src/test/ui/type-inference/or_else-multiple-type-params.stderr create mode 100644 src/test/ui/type-inference/sort_by_key.rs create mode 100644 src/test/ui/type-inference/sort_by_key.stderr 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 000000000000..b15de2a4559d --- /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 000000000000..a15904d01f64 --- /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::` + +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 000000000000..afc4d90b8650 --- /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 000000000000..76b49ee1f23e --- /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::` + | | + | cannot infer type for `K` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0282`.