diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-10-13 09:41:26 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-13 09:41:26 +0900 |
| commit | 36ea7cd88c91547204d5f8e9016ee7a07890117c (patch) | |
| tree | 2540369386c9ea747b9fbea8200491840b0903a6 | |
| parent | 3c8c997d0d095f5fe8643157ce7d091a87a354da (diff) | |
| parent | 950ca0c30201471626e1a47a9b7dd7338d9ae4b7 (diff) | |
| download | rust-36ea7cd88c91547204d5f8e9016ee7a07890117c.tar.gz rust-36ea7cd88c91547204d5f8e9016ee7a07890117c.zip | |
Rollup merge of #102967 - Rageking8:add-test-for-issue-102964, r=TaKO8Ki
Add test for issue 102964 Fixes #102964
| -rw-r--r-- | src/test/ui/issues/issue-102964.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-102964.stderr | 19 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-102964.rs b/src/test/ui/issues/issue-102964.rs new file mode 100644 index 00000000000..43ff2360076 --- /dev/null +++ b/src/test/ui/issues/issue-102964.rs @@ -0,0 +1,10 @@ +use std::rc::Rc; +type Foo<'a, T> = &'a dyn Fn(&T); +type RcFoo<'a, T> = Rc<Foo<'a, T>>; + +fn bar_function<T>(function: Foo<T>) -> RcFoo<T> { + //~^ ERROR mismatched types + let rc = Rc::new(function); +} + +fn main() {} diff --git a/src/test/ui/issues/issue-102964.stderr b/src/test/ui/issues/issue-102964.stderr new file mode 100644 index 00000000000..4504039097b --- /dev/null +++ b/src/test/ui/issues/issue-102964.stderr @@ -0,0 +1,19 @@ +error[E0308]: mismatched types + --> $DIR/issue-102964.rs:5:41 + | +LL | fn bar_function<T>(function: Foo<T>) -> RcFoo<T> { + | ------------ ^^^^^^^^ expected struct `Rc`, found `()` + | | + | implicitly returns `()` as its body has no tail or `return` expression + | + = note: expected struct `Rc<&dyn for<'a> Fn(&'a T)>` + found unit type `()` +help: consider returning the local binding `rc` + | +LL ~ let rc = Rc::new(function); +LL + rc + | + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
