]> git.lizzy.rs Git - rust.git/blob - src/tools/rustfmt/tests/target/issue_4110.rs
:arrow_up: rust-analyzer
[rust.git] / src / tools / rustfmt / tests / target / issue_4110.rs
1 fn bindings() {
2     let err = match (place_desc, explanation) {
3         (
4             Some(ref name),
5             BorrowExplanation::MustBeValidFor {
6                 category:
7                     category @ (ConstraintCategory::Return
8                     | ConstraintCategory::CallArgument
9                     | ConstraintCategory::OpaqueType),
10                 from_closure: false,
11                 ref region_name,
12                 span,
13                 ..
14             },
15         ) if borrow_spans.for_generator() | borrow_spans.for_closure() => self
16             .report_escaping_closure_capture(
17                 borrow_spans,
18                 borrow_span,
19                 region_name,
20                 category,
21                 span,
22                 &format!("`{}`", name),
23             ),
24         (
25             ref name,
26             BorrowExplanation::MustBeValidFor {
27                 category: ConstraintCategory::Assignment,
28                 from_closure: false,
29                 region_name:
30                     RegionName {
31                         source: RegionNameSource::AnonRegionFromUpvar(upvar_span, ref upvar_name),
32                         ..
33                     },
34                 span,
35                 ..
36             },
37         ) => self.report_escaping_data(borrow_span, name, upvar_span, upvar_name, span),
38         (Some(name), explanation) => self.report_local_value_does_not_live_long_enough(
39             location,
40             &name,
41             &borrow,
42             drop_span,
43             borrow_spans,
44             explanation,
45         ),
46         (None, explanation) => self.report_temporary_value_does_not_live_long_enough(
47             location,
48             &borrow,
49             drop_span,
50             borrow_spans,
51             proper_span,
52             explanation,
53         ),
54     };
55 }