fn bindings() { let err = match (place_desc, explanation) { ( Some(ref name), BorrowExplanation::MustBeValidFor { category: category @ (ConstraintCategory::Return | ConstraintCategory::CallArgument | ConstraintCategory::OpaqueType), from_closure: false, ref region_name, span, .. }, ) if borrow_spans.for_coroutine() | borrow_spans.for_closure() => self .report_escaping_closure_capture( borrow_spans, borrow_span, region_name, category, span, &format!("`{}`", name), "function", ), ( ref name, BorrowExplanation::MustBeValidFor { category: ConstraintCategory::Assignment, from_closure: false, region_name: RegionName { source: RegionNameSource::AnonRegionFromUpvar(upvar_span, ref upvar_name), .. }, span, .. }, ) => self.report_escaping_data(borrow_span, name, upvar_span, upvar_name, span), (Some(name), explanation) => self.report_local_value_does_not_live_long_enough( location, &name, &borrow, drop_span, borrow_spans, explanation, ), (None, explanation) => self.report_temporary_value_does_not_live_long_enough( location, &borrow, drop_span, borrow_spans, proper_span, explanation, ), }; }