about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2021-12-14 20:47:26 +0100
committerGitHub <noreply@github.com>2021-12-14 20:47:26 +0100
commitc0e3ddeff3596792a6d32b8aa237f2b12810c9e8 (patch)
tree788ff9ef3dd728819609583fa31532b1a7e7641e
parent50327d2c9169cb218834ee75db00f0b3a969c54c (diff)
parentc983c0a46ae0d496a64ae7553921a904c5a92d16 (diff)
downloadrust-c0e3ddeff3596792a6d32b8aa237f2b12810c9e8.tar.gz
rust-c0e3ddeff3596792a6d32b8aa237f2b12810c9e8.zip
Rollup merge of #91239 - cameron1024:issue-87490-regression, r=jackh726
regression test for issue 87490

Closes #87490
-rw-r--r--src/test/ui/issues/issue-87490.rs10
-rw-r--r--src/test/ui/issues/issue-87490.stderr14
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-87490.rs b/src/test/ui/issues/issue-87490.rs
new file mode 100644
index 00000000000..998f61a6bd3
--- /dev/null
+++ b/src/test/ui/issues/issue-87490.rs
@@ -0,0 +1,10 @@
+fn main() {}
+trait StreamOnce {
+    type Position;
+}
+impl StreamOnce for &str {
+    type Position = usize;
+}
+fn follow(_: &str) -> <&str as StreamOnce>::Position {
+    String::new  //~ ERROR mismatched types
+}
diff --git a/src/test/ui/issues/issue-87490.stderr b/src/test/ui/issues/issue-87490.stderr
new file mode 100644
index 00000000000..f359dd638ad
--- /dev/null
+++ b/src/test/ui/issues/issue-87490.stderr
@@ -0,0 +1,14 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-87490.rs:9:5
+   |
+LL | fn follow(_: &str) -> <&str as StreamOnce>::Position {
+   |                       ------------------------------ expected `usize` because of return type
+LL |     String::new
+   |     ^^^^^^^^^^^ expected `usize`, found fn item
+   |
+   = note: expected type `usize`
+           found fn item `fn() -> String {String::new}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.