T!['('] => tuple_expr(p),
T!['['] => array_expr(p),
T![|] => closure_expr(p),
- T![move] if la == T![|] => closure_expr(p),
- T![async] if la == T![|] || (la == T![move] && p.nth(2) == T![|]) => closure_expr(p),
- T![static]
- if la == T![|]
- || (la == T![move] && p.nth(2) == T![|])
- || (la == T![async] && p.nth(2) == T![|])
- || (la == T![async] && p.nth(2) == T![move] && p.nth(3) == T![|]) =>
- {
+ T![static] | T![async] | T![move] if la == T![|] => closure_expr(p),
+ T![static] | T![async] if la == T![move] && p.nth(2) == T![|] => closure_expr(p),
+ T![static] if la == T![async] && p.nth(2) == T![|] => closure_expr(p),
+ T![static] if la == T![async] && p.nth(2) == T![move] && p.nth(3) == T![|] => {
closure_expr(p)
}
T![if] => if_expr(p),
// fn main() { || -> i32 { 92 }(); }
block_expr(p);
} else if p.at_ts(EXPR_FIRST) {
- println!("gg");
expr(p);
} else {
p.error("expected expression");