diff options
Diffstat (limited to 'src/test/ui/closure-expected-type/expect-fn-supply-fn-multiple.rs')
-rw-r--r-- | src/test/ui/closure-expected-type/expect-fn-supply-fn-multiple.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/closure-expected-type/expect-fn-supply-fn-multiple.rs b/src/test/ui/closure-expected-type/expect-fn-supply-fn-multiple.rs new file mode 100644 index 000000000..5f02e642d --- /dev/null +++ b/src/test/ui/closure-expected-type/expect-fn-supply-fn-multiple.rs @@ -0,0 +1,38 @@ +// build-pass (FIXME(62277): could be check-pass?) + +#![allow(warnings)] + +type Different<'a, 'b> = &'a mut (&'a (), &'b ()); +type Same<'a> = Different<'a, 'a>; + +fn with_closure_expecting_different<F>(_: F) + where F: for<'a, 'b> FnOnce(Different<'a, 'b>) +{ +} + +fn with_closure_expecting_different_anon<F>(_: F) + where F: FnOnce(Different<'_, '_>) +{ +} + +fn supplying_nothing_expecting_anon() { + with_closure_expecting_different_anon(|x: Different| { + }) +} + +fn supplying_nothing_expecting_named() { + with_closure_expecting_different(|x: Different| { + }) +} + +fn supplying_underscore_expecting_anon() { + with_closure_expecting_different_anon(|x: Different<'_, '_>| { + }) +} + +fn supplying_underscore_expecting_named() { + with_closure_expecting_different(|x: Different<'_, '_>| { + }) +} + +fn main() { } |