From 9638adaa40d22adcf9b4002d95a13977c0f1436f Mon Sep 17 00:00:00 2001 From: Geoffry Song Date: Wed, 2 Oct 2019 23:38:03 -0700 Subject: Fix parsing of block expressions in "forbid_structs" contexts. Forbidding block expressions entirely is too strict; instead, we should only forbid them in contexts where we are parsing an optional RHS (i.e. the RHS of a range expression). --- .../test_data/parser/inline/ok/0071_match_expr.txt | 65 +++++++++++++++++++--- 1 file changed, 58 insertions(+), 7 deletions(-) (limited to 'crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt') diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt index f62b6c6d5..0af668056 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt +++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 47) - FN_DEF@[0; 46) +SOURCE_FILE@[0; 97) + FN_DEF@[0; 96) FN_KW@[0; 2) "fn" WHITESPACE@[2; 3) " " NAME@[3; 6) @@ -8,8 +8,8 @@ SOURCE_FILE@[0; 47) L_PAREN@[6; 7) "(" R_PAREN@[7; 8) ")" WHITESPACE@[8; 9) " " - BLOCK_EXPR@[9; 46) - BLOCK@[9; 46) + BLOCK_EXPR@[9; 96) + BLOCK@[9; 96) L_CURLY@[9; 10) "{" WHITESPACE@[10; 15) "\n " EXPR_STMT@[15; 28) @@ -40,6 +40,57 @@ SOURCE_FILE@[0; 47) L_CURLY@[41; 42) "{" R_CURLY@[42; 43) "}" SEMI@[43; 44) ";" - WHITESPACE@[44; 45) "\n" - R_CURLY@[45; 46) "}" - WHITESPACE@[46; 47) "\n" + WHITESPACE@[44; 49) "\n " + EXPR_STMT@[49; 71) + MATCH_EXPR@[49; 70) + MATCH_KW@[49; 54) "match" + WHITESPACE@[54; 55) " " + BLOCK_EXPR@[55; 58) + BLOCK@[55; 58) + L_CURLY@[55; 56) "{" + WHITESPACE@[56; 57) " " + R_CURLY@[57; 58) "}" + WHITESPACE@[58; 59) " " + MATCH_ARM_LIST@[59; 70) + L_CURLY@[59; 60) "{" + WHITESPACE@[60; 61) " " + MATCH_ARM@[61; 68) + PLACEHOLDER_PAT@[61; 62) + UNDERSCORE@[61; 62) "_" + WHITESPACE@[62; 63) " " + FAT_ARROW@[63; 65) "=>" + WHITESPACE@[65; 66) " " + TUPLE_EXPR@[66; 68) + L_PAREN@[66; 67) "(" + R_PAREN@[67; 68) ")" + WHITESPACE@[68; 69) " " + R_CURLY@[69; 70) "}" + SEMI@[70; 71) ";" + WHITESPACE@[71; 76) "\n " + EXPR_STMT@[76; 94) + MATCH_EXPR@[76; 93) + MATCH_KW@[76; 81) "match" + WHITESPACE@[81; 82) " " + BLOCK_EXPR@[82; 90) + BLOCK@[82; 90) + L_CURLY@[82; 83) "{" + WHITESPACE@[83; 84) " " + RECORD_LIT@[84; 88) + PATH@[84; 85) + PATH_SEGMENT@[84; 85) + NAME_REF@[84; 85) + IDENT@[84; 85) "S" + WHITESPACE@[85; 86) " " + RECORD_FIELD_LIST@[86; 88) + L_CURLY@[86; 87) "{" + R_CURLY@[87; 88) "}" + WHITESPACE@[88; 89) " " + R_CURLY@[89; 90) "}" + WHITESPACE@[90; 91) " " + MATCH_ARM_LIST@[91; 93) + L_CURLY@[91; 92) "{" + R_CURLY@[92; 93) "}" + SEMI@[93; 94) ";" + WHITESPACE@[94; 95) "\n" + R_CURLY@[95; 96) "}" + WHITESPACE@[96; 97) "\n" -- cgit v1.2.3