Keep track of the start of the argument block of a closure
This commit is contained in:
parent
872631d0f0
commit
8f705e2425
15 changed files with 53 additions and 29 deletions
|
@ -176,6 +176,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body,
|
||||
fn_decl_span,
|
||||
fn_arg_span,
|
||||
}) => {
|
||||
if let Async::Yes { closure_id, .. } = asyncness {
|
||||
self.lower_expr_async_closure(
|
||||
|
@ -186,6 +187,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body,
|
||||
*fn_decl_span,
|
||||
*fn_arg_span,
|
||||
)
|
||||
} else {
|
||||
self.lower_expr_closure(
|
||||
|
@ -196,6 +198,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body,
|
||||
*fn_decl_span,
|
||||
*fn_arg_span,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -639,6 +642,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body,
|
||||
fn_decl_span: self.lower_span(span),
|
||||
fn_arg_span: None,
|
||||
movability: Some(hir::Movability::Static),
|
||||
});
|
||||
|
||||
|
@ -887,6 +891,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
decl: &FnDecl,
|
||||
body: &Expr,
|
||||
fn_decl_span: Span,
|
||||
fn_arg_span: Span,
|
||||
) -> hir::ExprKind<'hir> {
|
||||
let (binder_clause, generic_params) = self.lower_closure_binder(binder);
|
||||
|
||||
|
@ -917,6 +922,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body: body_id,
|
||||
fn_decl_span: self.lower_span(fn_decl_span),
|
||||
fn_arg_span: Some(self.lower_span(fn_arg_span)),
|
||||
movability: generator_option,
|
||||
});
|
||||
|
||||
|
@ -973,6 +979,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
decl: &FnDecl,
|
||||
body: &Expr,
|
||||
fn_decl_span: Span,
|
||||
fn_arg_span: Span,
|
||||
) -> hir::ExprKind<'hir> {
|
||||
if let &ClosureBinder::For { span, .. } = binder {
|
||||
self.tcx.sess.emit_err(NotSupportedForLifetimeBinderAsyncClosure { span });
|
||||
|
@ -1027,6 +1034,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
|||
fn_decl,
|
||||
body,
|
||||
fn_decl_span: self.lower_span(fn_decl_span),
|
||||
fn_arg_span: Some(self.lower_span(fn_arg_span)),
|
||||
movability: None,
|
||||
});
|
||||
hir::ExprKind::Closure(c)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue