From 3daca3eb4d843199540edfb1092f57f49938d0f6 Mon Sep 17 00:00:00 2001 From: Marcus Klaas de Vries Date: Mon, 28 Jan 2019 23:06:11 +0100 Subject: Infer type of match guard --- .../tests/data/parser/inline/ok/0066_match_arm.txt | 83 +++++++++++----------- .../data/parser/inline/ok/0118_match_guard.rs | 5 ++ .../data/parser/inline/ok/0118_match_guard.txt | 47 ++++++++++++ 3 files changed, 95 insertions(+), 40 deletions(-) create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.rs create mode 100644 crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.txt (limited to 'crates/ra_syntax/tests/data/parser/inline/ok') diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt index 98e7535a3..b44e61879 100644 --- a/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0066_match_arm.txt @@ -37,32 +37,33 @@ SOURCE_FILE@[0; 167) PLACEHOLDER_PAT@[51; 52) UNDERSCORE@[51; 52) WHITESPACE@[52; 53) - IF_KW@[53; 55) - WHITESPACE@[55; 56) - BIN_EXPR@[56; 77) - PATH_EXPR@[56; 60) - PATH@[56; 60) - PATH_SEGMENT@[56; 60) - NAME_REF@[56; 60) - IDENT@[56; 60) "Test" - WHITESPACE@[60; 61) - R_ANGLE@[61; 62) - WHITESPACE@[62; 63) - STRUCT_LIT@[63; 77) - PATH@[63; 67) - PATH_SEGMENT@[63; 67) - NAME_REF@[63; 67) - IDENT@[63; 67) "Test" - NAMED_FIELD_LIST@[67; 77) - L_CURLY@[67; 68) - NAMED_FIELD@[68; 76) - NAME_REF@[68; 73) - IDENT@[68; 73) "field" - COLON@[73; 74) - WHITESPACE@[74; 75) - LITERAL@[75; 76) - INT_NUMBER@[75; 76) "0" - R_CURLY@[76; 77) + MATCH_GUARD@[53; 77) + IF_KW@[53; 55) + WHITESPACE@[55; 56) + BIN_EXPR@[56; 77) + PATH_EXPR@[56; 60) + PATH@[56; 60) + PATH_SEGMENT@[56; 60) + NAME_REF@[56; 60) + IDENT@[56; 60) "Test" + WHITESPACE@[60; 61) + R_ANGLE@[61; 62) + WHITESPACE@[62; 63) + STRUCT_LIT@[63; 77) + PATH@[63; 67) + PATH_SEGMENT@[63; 67) + NAME_REF@[63; 67) + IDENT@[63; 67) "Test" + NAMED_FIELD_LIST@[67; 77) + L_CURLY@[67; 68) + NAMED_FIELD@[68; 76) + NAME_REF@[68; 73) + IDENT@[68; 73) "field" + COLON@[73; 74) + WHITESPACE@[74; 75) + LITERAL@[75; 76) + INT_NUMBER@[75; 76) "0" + R_CURLY@[76; 77) WHITESPACE@[77; 78) FAT_ARROW@[78; 80) WHITESPACE@[80; 81) @@ -82,13 +83,14 @@ SOURCE_FILE@[0; 167) NAME@[97; 98) IDENT@[97; 98) "Y" WHITESPACE@[98; 99) - IF_KW@[99; 101) - WHITESPACE@[101; 102) - PATH_EXPR@[102; 103) - PATH@[102; 103) - PATH_SEGMENT@[102; 103) - NAME_REF@[102; 103) - IDENT@[102; 103) "Z" + MATCH_GUARD@[99; 103) + IF_KW@[99; 101) + WHITESPACE@[101; 102) + PATH_EXPR@[102; 103) + PATH@[102; 103) + PATH_SEGMENT@[102; 103) + NAME_REF@[102; 103) + IDENT@[102; 103) "Z" WHITESPACE@[103; 104) FAT_ARROW@[104; 106) WHITESPACE@[106; 107) @@ -110,13 +112,14 @@ SOURCE_FILE@[0; 167) NAME@[125; 126) IDENT@[125; 126) "Y" WHITESPACE@[126; 127) - IF_KW@[127; 129) - WHITESPACE@[129; 130) - PATH_EXPR@[130; 131) - PATH@[130; 131) - PATH_SEGMENT@[130; 131) - NAME_REF@[130; 131) - IDENT@[130; 131) "Z" + MATCH_GUARD@[127; 131) + IF_KW@[127; 129) + WHITESPACE@[129; 130) + PATH_EXPR@[130; 131) + PATH@[130; 131) + PATH_SEGMENT@[130; 131) + NAME_REF@[130; 131) + IDENT@[130; 131) "Z" WHITESPACE@[131; 132) FAT_ARROW@[132; 134) WHITESPACE@[134; 135) diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.rs new file mode 100644 index 000000000..f1bd72fc4 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.rs @@ -0,0 +1,5 @@ +fn foo() { + match () { + _ if foo => (), + } +} diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.txt new file mode 100644 index 000000000..27553882d --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0118_match_guard.txt @@ -0,0 +1,47 @@ +SOURCE_FILE@[0; 58) + FN_DEF@[0; 57) + FN_KW@[0; 2) + WHITESPACE@[2; 3) + NAME@[3; 6) + IDENT@[3; 6) "foo" + PARAM_LIST@[6; 8) + L_PAREN@[6; 7) + R_PAREN@[7; 8) + WHITESPACE@[8; 9) + BLOCK@[9; 57) + L_CURLY@[9; 10) + WHITESPACE@[10; 15) + MATCH_EXPR@[15; 55) + MATCH_KW@[15; 20) + WHITESPACE@[20; 21) + TUPLE_EXPR@[21; 23) + L_PAREN@[21; 22) + R_PAREN@[22; 23) + WHITESPACE@[23; 24) + MATCH_ARM_LIST@[24; 55) + L_CURLY@[24; 25) + WHITESPACE@[25; 34) + MATCH_ARM@[34; 48) + PLACEHOLDER_PAT@[34; 35) + UNDERSCORE@[34; 35) + WHITESPACE@[35; 36) + MATCH_GUARD@[36; 42) + IF_KW@[36; 38) + WHITESPACE@[38; 39) + PATH_EXPR@[39; 42) + PATH@[39; 42) + PATH_SEGMENT@[39; 42) + NAME_REF@[39; 42) + IDENT@[39; 42) "foo" + WHITESPACE@[42; 43) + FAT_ARROW@[43; 45) + WHITESPACE@[45; 46) + TUPLE_EXPR@[46; 48) + L_PAREN@[46; 47) + R_PAREN@[47; 48) + COMMA@[48; 49) + WHITESPACE@[49; 54) + R_CURLY@[54; 55) + WHITESPACE@[55; 56) + R_CURLY@[56; 57) + WHITESPACE@[57; 58) -- cgit v1.2.3