diff options
Diffstat (limited to 'crates/ra_syntax/src/grammar/expressions.rs')
-rw-r--r-- | crates/ra_syntax/src/grammar/expressions.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ra_syntax/src/grammar/expressions.rs b/crates/ra_syntax/src/grammar/expressions.rs index 60c8602f9..a9449c7bf 100644 --- a/crates/ra_syntax/src/grammar/expressions.rs +++ b/crates/ra_syntax/src/grammar/expressions.rs | |||
@@ -368,12 +368,16 @@ fn try_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | |||
368 | // test cast_expr | 368 | // test cast_expr |
369 | // fn foo() { | 369 | // fn foo() { |
370 | // 82 as i32; | 370 | // 82 as i32; |
371 | // 81 as i8 + 1; | ||
372 | // 79 as i16 - 1; | ||
371 | // } | 373 | // } |
372 | fn cast_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { | 374 | fn cast_expr(p: &mut Parser, lhs: CompletedMarker) -> CompletedMarker { |
373 | assert!(p.at(AS_KW)); | 375 | assert!(p.at(AS_KW)); |
374 | let m = lhs.precede(p); | 376 | let m = lhs.precede(p); |
375 | p.bump(); | 377 | p.bump(); |
376 | types::type_(p); | 378 | // Use type_no_bounds(), because cast expressions are not |
379 | // allowed to have bounds. | ||
380 | types::type_no_bounds(p); | ||
377 | m.complete(p, CAST_EXPR) | 381 | m.complete(p, CAST_EXPR) |
378 | } | 382 | } |
379 | 383 | ||