From 20bbe0127cc6bfac3ced0c7ed1de4f0526f3bbed Mon Sep 17 00:00:00 2001 From: DJMcNab <36049421+DJMcNab@users.noreply.github.com> Date: Mon, 17 Dec 2018 22:34:18 +0000 Subject: Fix parsing of inclusive ranges (#214) I'm not certain that this is correct, so extra eyes would be good --- .../tests/data/parser/ok/0029_range_forms.rs | 5 ++ .../tests/data/parser/ok/0029_range_forms.txt | 86 ++++++++++++++++++++-- 2 files changed, 85 insertions(+), 6 deletions(-) (limited to 'crates/ra_syntax/tests/data/parser/ok') diff --git a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.rs b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.rs index 03f4ae7b2..f9ff444d4 100644 --- a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.rs +++ b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.rs @@ -3,4 +3,9 @@ fn foo() { ..z = 2; x = false..1 == 1; let x = 1..; + + ..=1 + 1; + ..=z = 2; + x = false..=1 == 1; + let x = 1..; } diff --git a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt index 2e7703c21..e3706bfbd 100644 --- a/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt +++ b/crates/ra_syntax/tests/data/parser/ok/0029_range_forms.txt @@ -1,5 +1,5 @@ -SOURCE_FILE@[0; 79) - FN_DEF@[0; 78) +SOURCE_FILE@[0; 153) + FN_DEF@[0; 152) FN_KW@[0; 2) WHITESPACE@[2; 3) NAME@[3; 6) @@ -8,7 +8,7 @@ SOURCE_FILE@[0; 79) L_PAREN@[6; 7) R_PAREN@[7; 8) WHITESPACE@[8; 9) - BLOCK@[9; 78) + BLOCK@[9; 152) L_CURLY@[9; 10) WHITESPACE@[10; 15) EXPR_STMT@[15; 23) @@ -78,6 +78,80 @@ SOURCE_FILE@[0; 79) INT_NUMBER@[72; 73) "1" DOTDOT@[73; 75) SEMI@[75; 76) - WHITESPACE@[76; 77) - R_CURLY@[77; 78) - WHITESPACE@[78; 79) + WHITESPACE@[76; 86) + err: `expected expression` + EXPR_STMT@[86; 89) + ERROR@[86; 89) + DOTDOTEQ@[86; 89) + err: `expected SEMI` + EXPR_STMT@[89; 95) + BIN_EXPR@[89; 94) + LITERAL@[89; 90) + INT_NUMBER@[89; 90) "1" + WHITESPACE@[90; 91) + PLUS@[91; 92) + WHITESPACE@[92; 93) + LITERAL@[93; 94) + INT_NUMBER@[93; 94) "1" + SEMI@[94; 95) + WHITESPACE@[95; 100) + err: `expected expression` + EXPR_STMT@[100; 103) + ERROR@[100; 103) + DOTDOTEQ@[100; 103) + err: `expected SEMI` + EXPR_STMT@[103; 109) + BIN_EXPR@[103; 108) + PATH_EXPR@[103; 104) + PATH@[103; 104) + PATH_SEGMENT@[103; 104) + NAME_REF@[103; 104) + IDENT@[103; 104) "z" + WHITESPACE@[104; 105) + EQ@[105; 106) + WHITESPACE@[106; 107) + LITERAL@[107; 108) + INT_NUMBER@[107; 108) "2" + SEMI@[108; 109) + WHITESPACE@[109; 114) + EXPR_STMT@[114; 133) + BIN_EXPR@[114; 132) + PATH_EXPR@[114; 115) + PATH@[114; 115) + PATH_SEGMENT@[114; 115) + NAME_REF@[114; 115) + IDENT@[114; 115) "x" + WHITESPACE@[115; 116) + EQ@[116; 117) + WHITESPACE@[117; 118) + RANGE_EXPR@[118; 132) + LITERAL@[118; 123) + FALSE_KW@[118; 123) + DOTDOTEQ@[123; 126) + BIN_EXPR@[126; 132) + LITERAL@[126; 127) + INT_NUMBER@[126; 127) "1" + WHITESPACE@[127; 128) + EQEQ@[128; 130) + WHITESPACE@[130; 131) + LITERAL@[131; 132) + INT_NUMBER@[131; 132) "1" + SEMI@[132; 133) + WHITESPACE@[133; 138) + LET_STMT@[138; 150) + LET_KW@[138; 141) + WHITESPACE@[141; 142) + BIND_PAT@[142; 143) + NAME@[142; 143) + IDENT@[142; 143) "x" + WHITESPACE@[143; 144) + EQ@[144; 145) + WHITESPACE@[145; 146) + RANGE_EXPR@[146; 149) + LITERAL@[146; 147) + INT_NUMBER@[146; 147) "1" + DOTDOT@[147; 149) + SEMI@[149; 150) + WHITESPACE@[150; 151) + R_CURLY@[151; 152) + WHITESPACE@[152; 153) -- cgit v1.2.3