diff options
Diffstat (limited to 'crates/ra_parser/src/grammar/expressions.rs')
-rw-r--r-- | crates/ra_parser/src/grammar/expressions.rs | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs index 855418f1c..30036eb46 100644 --- a/crates/ra_parser/src/grammar/expressions.rs +++ b/crates/ra_parser/src/grammar/expressions.rs | |||
@@ -46,7 +46,7 @@ pub(crate) fn block(p: &mut Parser) { | |||
46 | pub(crate) fn naked_block(p: &mut Parser) { | 46 | pub(crate) fn naked_block(p: &mut Parser) { |
47 | assert!(p.at(T!['{'])); | 47 | assert!(p.at(T!['{'])); |
48 | let m = p.start(); | 48 | let m = p.start(); |
49 | p.bump(); | 49 | p.bump_any(); |
50 | expr_block_contents(p); | 50 | expr_block_contents(p); |
51 | p.expect(T!['}']); | 51 | p.expect(T!['}']); |
52 | m.complete(p, BLOCK); | 52 | m.complete(p, BLOCK); |
@@ -153,7 +153,7 @@ pub(super) fn stmt(p: &mut Parser, with_semi: StmtWithSemi) { | |||
153 | // } | 153 | // } |
154 | fn let_stmt(p: &mut Parser, m: Marker, with_semi: StmtWithSemi) { | 154 | fn let_stmt(p: &mut Parser, m: Marker, with_semi: StmtWithSemi) { |
155 | assert!(p.at(T![let])); | 155 | assert!(p.at(T![let])); |
156 | p.bump(); | 156 | p.bump_any(); |
157 | patterns::pattern(p); | 157 | patterns::pattern(p); |
158 | if p.at(T![:]) { | 158 | if p.at(T![:]) { |
159 | types::ascription(p); | 159 | types::ascription(p); |
@@ -198,7 +198,7 @@ pub(crate) fn expr_block_contents(p: &mut Parser) { | |||
198 | // } | 198 | // } |
199 | 199 | ||
200 | if p.at(T![;]) { | 200 | if p.at(T![;]) { |
201 | p.bump(); | 201 | p.bump_any(); |
202 | continue; | 202 | continue; |
203 | } | 203 | } |
204 | 204 | ||
@@ -309,7 +309,7 @@ fn expr_bp( | |||
309 | } | 309 | } |
310 | let m = lhs.precede(p); | 310 | let m = lhs.precede(p); |
311 | match op { | 311 | match op { |
312 | Op::Simple => p.bump(), | 312 | Op::Simple => p.bump_any(), |
313 | Op::Composite(kind, n) => { | 313 | Op::Composite(kind, n) => { |
314 | p.bump_compound(kind, n); | 314 | p.bump_compound(kind, n); |
315 | } | 315 | } |
@@ -338,7 +338,7 @@ fn lhs( | |||
338 | // } | 338 | // } |
339 | T![&] => { | 339 | T![&] => { |
340 | m = p.start(); | 340 | m = p.start(); |
341 | p.bump(); | 341 | p.bump_any(); |
342 | p.eat(T![mut]); | 342 | p.eat(T![mut]); |
343 | REF_EXPR | 343 | REF_EXPR |
344 | } | 344 | } |
@@ -350,14 +350,14 @@ fn lhs( | |||
350 | // } | 350 | // } |
351 | T![*] | T![!] | T![-] => { | 351 | T![*] | T![!] | T![-] => { |
352 | m = p.start(); | 352 | m = p.start(); |
353 | p.bump(); | 353 | p.bump_any(); |
354 | PREFIX_EXPR | 354 | PREFIX_EXPR |
355 | } | 355 | } |
356 | // test full_range_expr | 356 | // test full_range_expr |
357 | // fn foo() { xs[..]; } | 357 | // fn foo() { xs[..]; } |
358 | T![..] | T![..=] => { | 358 | T![..] | T![..=] => { |
359 | m = p.start(); | 359 | m = p.start(); |
360 | p.bump(); | 360 | p.bump_any(); |
361 | if p.at_ts(EXPR_FIRST) { | 361 | if p.at_ts(EXPR_FIRST) { |
362 | expr_bp(p, r, 2, dollar_lvl); | 362 | expr_bp(p, r, 2, dollar_lvl); |
363 | } | 363 | } |
@@ -410,8 +410,8 @@ fn postfix_expr( | |||
410 | // x.0().await?.hello(); | 410 | // x.0().await?.hello(); |
411 | // } | 411 | // } |
412 | let m = lhs.precede(p); | 412 | let m = lhs.precede(p); |
413 | p.bump(); | 413 | p.bump_any(); |
414 | p.bump(); | 414 | p.bump_any(); |
415 | m.complete(p, AWAIT_EXPR) | 415 | m.complete(p, AWAIT_EXPR) |
416 | } | 416 | } |
417 | T![.] => field_expr(p, lhs), | 417 | T![.] => field_expr(p, lhs), |
@@ -419,7 +419,7 @@ fn postfix_expr( | |||
419 | // fn foo() { let x = 1..; } | 419 | // fn foo() { let x = 1..; } |
420 | T![..] | T![..=] if !EXPR_FIRST.contains(p.nth(1)) => { | 420 | T![..] | T![..=] if !EXPR_FIRST.contains(p.nth(1)) => { |
421 | let m = lhs.precede(p); | 421 | let m = lhs.precede(p); |
422 | p.bump(); | 422 | p.bump_any(); |
423 | m.complete(p, RANGE_EXPR) | 423 | m.complete(p, RANGE_EXPR) |
424 | } | 424 | } |
425 | T![?] => try_expr(p, lhs), | 425 | T![?] => try_expr(p, lhs), |
@@ -453,7 +453,7 @@ fn call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
453 | fn index_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 453 | fn index_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
454 | assert!(p.at(T!['['])); | 454 | assert!(p.at(T!['['])); |
455 | let m = lhs.precede(p); | 455 | let m = lhs.precede(p); |
456 | p.bump(); | 456 | p.bump_any(); |
457 | expr(p); | 457 | expr(p); |
458 | p.expect(T![']']); | 458 | p.expect(T![']']); |
459 | m.complete(p, INDEX_EXPR) | 459 | m.complete(p, INDEX_EXPR) |
@@ -467,7 +467,7 @@ fn index_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
467 | fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 467 | fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
468 | assert!(p.at(T![.]) && p.nth(1) == IDENT && (p.nth(2) == T!['('] || p.nth(2) == T![::])); | 468 | assert!(p.at(T![.]) && p.nth(1) == IDENT && (p.nth(2) == T!['('] || p.nth(2) == T![::])); |
469 | let m = lhs.precede(p); | 469 | let m = lhs.precede(p); |
470 | p.bump(); | 470 | p.bump_any(); |
471 | name_ref(p); | 471 | name_ref(p); |
472 | type_args::opt_type_arg_list(p, true); | 472 | type_args::opt_type_arg_list(p, true); |
473 | if p.at(T!['(']) { | 473 | if p.at(T!['(']) { |
@@ -493,12 +493,12 @@ fn method_call_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
493 | fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 493 | fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
494 | assert!(p.at(T![.])); | 494 | assert!(p.at(T![.])); |
495 | let m = lhs.precede(p); | 495 | let m = lhs.precede(p); |
496 | p.bump(); | 496 | p.bump_any(); |
497 | if p.at(IDENT) || p.at(INT_NUMBER) { | 497 | if p.at(IDENT) || p.at(INT_NUMBER) { |
498 | name_ref_or_index(p) | 498 | name_ref_or_index(p) |
499 | } else if p.at(FLOAT_NUMBER) { | 499 | } else if p.at(FLOAT_NUMBER) { |
500 | // FIXME: How to recover and instead parse INT + T![.]? | 500 | // FIXME: How to recover and instead parse INT + T![.]? |
501 | p.bump(); | 501 | p.bump_any(); |
502 | } else { | 502 | } else { |
503 | p.error("expected field name or number") | 503 | p.error("expected field name or number") |
504 | } | 504 | } |
@@ -512,7 +512,7 @@ fn field_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
512 | fn try_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 512 | fn try_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
513 | assert!(p.at(T![?])); | 513 | assert!(p.at(T![?])); |
514 | let m = lhs.precede(p); | 514 | let m = lhs.precede(p); |
515 | p.bump(); | 515 | p.bump_any(); |
516 | m.complete(p, TRY_EXPR) | 516 | m.complete(p, TRY_EXPR) |
517 | } | 517 | } |
518 | 518 | ||
@@ -526,7 +526,7 @@ fn try_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
526 | fn cast_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 526 | fn cast_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
527 | assert!(p.at(T![as])); | 527 | assert!(p.at(T![as])); |
528 | let m = lhs.precede(p); | 528 | let m = lhs.precede(p); |
529 | p.bump(); | 529 | p.bump_any(); |
530 | // Use type_no_bounds(), because cast expressions are not | 530 | // Use type_no_bounds(), because cast expressions are not |
531 | // allowed to have bounds. | 531 | // allowed to have bounds. |
532 | types::type_no_bounds(p); | 532 | types::type_no_bounds(p); |
@@ -536,7 +536,7 @@ fn cast_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
536 | fn arg_list(p: &mut Parser) { | 536 | fn arg_list(p: &mut Parser) { |
537 | assert!(p.at(T!['('])); | 537 | assert!(p.at(T!['('])); |
538 | let m = p.start(); | 538 | let m = p.start(); |
539 | p.bump(); | 539 | p.bump_any(); |
540 | while !p.at(T![')']) && !p.at(EOF) { | 540 | while !p.at(T![')']) && !p.at(EOF) { |
541 | if !p.at_ts(EXPR_FIRST) { | 541 | if !p.at_ts(EXPR_FIRST) { |
542 | p.error("expected expression"); | 542 | p.error("expected expression"); |
@@ -585,7 +585,7 @@ fn path_expr(p: &mut Parser, r: Restrictions) -> (CompletedMarker, BlockLike) { | |||
585 | pub(crate) fn record_field_list(p: &mut Parser) { | 585 | pub(crate) fn record_field_list(p: &mut Parser) { |
586 | assert!(p.at(T!['{'])); | 586 | assert!(p.at(T!['{'])); |
587 | let m = p.start(); | 587 | let m = p.start(); |
588 | p.bump(); | 588 | p.bump_any(); |
589 | while !p.at(EOF) && !p.at(T!['}']) { | 589 | while !p.at(EOF) && !p.at(T!['}']) { |
590 | match p.current() { | 590 | match p.current() { |
591 | // test record_literal_field_with_attr | 591 | // test record_literal_field_with_attr |
@@ -602,7 +602,7 @@ pub(crate) fn record_field_list(p: &mut Parser) { | |||
602 | m.complete(p, RECORD_FIELD); | 602 | m.complete(p, RECORD_FIELD); |
603 | } | 603 | } |
604 | T![..] => { | 604 | T![..] => { |
605 | p.bump(); | 605 | p.bump_any(); |
606 | expr(p); | 606 | expr(p); |
607 | } | 607 | } |
608 | T!['{'] => error_block(p, "expected a field"), | 608 | T!['{'] => error_block(p, "expected a field"), |