From c983c0a46ae0d496a64ae7553921a904c5a92d16 Mon Sep 17 00:00:00 2001 From: cameron Date: Fri, 26 Nov 2021 00:03:52 +0000 Subject: [PATCH] regression test for issue 87490 --- src/test/ui/issues/issue-87490.rs | 10 ++++++++++ src/test/ui/issues/issue-87490.stderr | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/test/ui/issues/issue-87490.rs create mode 100644 src/test/ui/issues/issue-87490.stderr 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`.