diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-12-28 18:48:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-28 18:48:01 +0100 |
| commit | 77c23b3e94efbc2d8a65991a6f8898a29b8b7e0d (patch) | |
| tree | 34a6138e236c5c2ba66d0beb52db15061780d401 | |
| parent | 54bcb07ab1aa5b0fb0fe68ccc23e8e260472b834 (diff) | |
| parent | a88c9a644c8869af1caf8b8163e4e533edd14cfb (diff) | |
| download | rust-77c23b3e94efbc2d8a65991a6f8898a29b8b7e0d.tar.gz rust-77c23b3e94efbc2d8a65991a6f8898a29b8b7e0d.zip | |
Rollup merge of #119376 - msrd0:regression-test-106630, r=petrochenkov
Add regression test for #106630 This PR adds a regression test for #106630. I was unsure where exactly to place the test or how to test it locally so please let me know if I should change something.
| -rw-r--r-- | tests/ui/impl-trait/not_general_enough_regression_106630.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/not_general_enough_regression_106630.rs b/tests/ui/impl-trait/not_general_enough_regression_106630.rs new file mode 100644 index 00000000000..439973950f3 --- /dev/null +++ b/tests/ui/impl-trait/not_general_enough_regression_106630.rs @@ -0,0 +1,33 @@ +// edition:2018 +// run-pass + +use std::future::Future; + +trait AsyncCallback<'a> { + type Out; +} + +impl<'a, Fut, T, F> AsyncCallback<'a> for F +where + F: FnOnce(&'a mut ()) -> Fut, + Fut: Future<Output = T> + Send + 'a, +{ + type Out = T; +} + +trait CallbackMarker {} + +impl<F, T> CallbackMarker for F +where + T: 'static, + for<'a> F: AsyncCallback<'a, Out = T> + Send, +{ +} + +fn do_sth<F: CallbackMarker>(_: F) {} + +async fn callback(_: &mut ()) -> impl Send {} + +fn main() { + do_sth(callback); +} |
