summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-10-23 16:22:11 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2020-10-23 16:41:34 +0900
commit98e13169ad9ca564def675ca61f7c072d399cb0d (patch)
tree240595687bbcafde7d804161ddfdf84fd81c61a2
parent5b32c84952a5d734839a486d77f07dfe995bcae7 (diff)
downloadrust-98e13169ad9ca564def675ca61f7c072d399cb0d.tar.gz
Add regression test for issue-71732
-rw-r--r--src/test/ui/inference/issue-71732.rs23
-rw-r--r--src/test/ui/inference/issue-71732.stderr13
2 files changed, 36 insertions, 0 deletions
diff --git a/src/test/ui/inference/issue-71732.rs b/src/test/ui/inference/issue-71732.rs
new file mode 100644
index 00000000000..30063a0957c
--- /dev/null
+++ b/src/test/ui/inference/issue-71732.rs
@@ -0,0 +1,23 @@
+// Regression test for #71732, it used to emit incorrect diagnostics, like:
+// error[E0283]: type annotations needed
+// --> src/main.rs:5:10
+// |
+// 5 | .get(&"key".into())
+// | ^^^ cannot infer type for struct `String`
+// |
+// = note: cannot satisfy `String: Borrow<_>`
+// help: consider specifying the type argument in the method call
+// |
+// 5 | .get::<Q>(&"key".into())
+// |
+
+use std::collections::hash_map::HashMap;
+
+fn foo(parameters: &HashMap<String, String>) -> bool {
+ parameters
+ .get(&"key".into()) //~ ERROR: type annotations needed
+ .and_then(|found: &String| Some(false))
+ .unwrap_or(false)
+}
+
+fn main() {}
diff --git a/src/test/ui/inference/issue-71732.stderr b/src/test/ui/inference/issue-71732.stderr
new file mode 100644
index 00000000000..17fad571385
--- /dev/null
+++ b/src/test/ui/inference/issue-71732.stderr
@@ -0,0 +1,13 @@
+error[E0283]: type annotations needed
+ --> $DIR/issue-71732.rs:18:10
+ |
+LL | .get(&"key".into())
+ | ^^^ ------------ this method call resolves to `T`
+ | |
+ | cannot infer type for type parameter `Q` declared on the associated function `get`
+ |
+ = note: cannot satisfy `String: Borrow<_>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0283`.