Parse closure binders
This is first step in implementing RFC 3216. - Parse `for<'a>` before closures in ast - Error in lowering - Add `closure_lifetime_binder` feature
This commit is contained in:
parent
fbdb07f4e7
commit
40ae7b5b8e
24 changed files with 288 additions and 39 deletions
|
@ -389,6 +389,7 @@ impl<'a> State<'a> {
|
|||
self.bclose(expr.span, empty);
|
||||
}
|
||||
ast::ExprKind::Closure(
|
||||
ref binder,
|
||||
capture_clause,
|
||||
asyncness,
|
||||
movability,
|
||||
|
@ -396,6 +397,7 @@ impl<'a> State<'a> {
|
|||
ref body,
|
||||
_,
|
||||
) => {
|
||||
self.print_closure_binder(binder);
|
||||
self.print_movability(movability);
|
||||
self.print_asyncness(asyncness);
|
||||
self.print_capture_clause(capture_clause);
|
||||
|
@ -594,6 +596,15 @@ impl<'a> State<'a> {
|
|||
self.end(); // Close enclosing cbox.
|
||||
}
|
||||
|
||||
fn print_closure_binder(&mut self, binder: &ast::ClosureBinder) {
|
||||
match binder {
|
||||
ast::ClosureBinder::NotPresent => {}
|
||||
ast::ClosureBinder::For { generic_params, .. } => {
|
||||
self.print_formal_generic_params(&generic_params)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn print_movability(&mut self, movability: ast::Movability) {
|
||||
match movability {
|
||||
ast::Movability::Static => self.word_space("static"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue