diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-30 20:51:47 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-30 20:51:47 +0000 |
commit | 28fdb8d03caf1ab8b40ed0fcbe8e47451fe030d9 (patch) | |
tree | a795362bb8cd25edb87e8da3f9786d68e029c22b /crates/ra_syntax/tests | |
parent | db17e06c2eec892ab807fd191bc11b15d8da42e2 (diff) | |
parent | 13cb4a1b370038dee51ae739a42d6b98acaef385 (diff) |
Merge #701
701: Minor type inference tweaks r=flodiebold a=marcusklaas
Pass down expectation for reference expressions and type the guard in match expressions.
I wasn't able to add a test for the former addition because the type variable previously introduced would always resolve to the right type in the things I tried!
Co-authored-by: Marcus Klaas de Vries <[email protected]>
Diffstat (limited to 'crates/ra_syntax/tests')
3 files changed, 95 insertions, 40 deletions
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) | |||
37 | PLACEHOLDER_PAT@[51; 52) | 37 | PLACEHOLDER_PAT@[51; 52) |
38 | UNDERSCORE@[51; 52) | 38 | UNDERSCORE@[51; 52) |
39 | WHITESPACE@[52; 53) | 39 | WHITESPACE@[52; 53) |
40 | IF_KW@[53; 55) | 40 | MATCH_GUARD@[53; 77) |
41 | WHITESPACE@[55; 56) | 41 | IF_KW@[53; 55) |
42 | BIN_EXPR@[56; 77) | 42 | WHITESPACE@[55; 56) |
43 | PATH_EXPR@[56; 60) | 43 | BIN_EXPR@[56; 77) |
44 | PATH@[56; 60) | 44 | PATH_EXPR@[56; 60) |
45 | PATH_SEGMENT@[56; 60) | 45 | PATH@[56; 60) |
46 | NAME_REF@[56; 60) | 46 | PATH_SEGMENT@[56; 60) |
47 | IDENT@[56; 60) "Test" | 47 | NAME_REF@[56; 60) |
48 | WHITESPACE@[60; 61) | 48 | IDENT@[56; 60) "Test" |
49 | R_ANGLE@[61; 62) | 49 | WHITESPACE@[60; 61) |
50 | WHITESPACE@[62; 63) | 50 | R_ANGLE@[61; 62) |
51 | STRUCT_LIT@[63; 77) | 51 | WHITESPACE@[62; 63) |
52 | PATH@[63; 67) | 52 | STRUCT_LIT@[63; 77) |
53 | PATH_SEGMENT@[63; 67) | 53 | PATH@[63; 67) |
54 | NAME_REF@[63; 67) | 54 | PATH_SEGMENT@[63; 67) |
55 | IDENT@[63; 67) "Test" | 55 | NAME_REF@[63; 67) |
56 | NAMED_FIELD_LIST@[67; 77) | 56 | IDENT@[63; 67) "Test" |
57 | L_CURLY@[67; 68) | 57 | NAMED_FIELD_LIST@[67; 77) |
58 | NAMED_FIELD@[68; 76) | 58 | L_CURLY@[67; 68) |
59 | NAME_REF@[68; 73) | 59 | NAMED_FIELD@[68; 76) |
60 | IDENT@[68; 73) "field" | 60 | NAME_REF@[68; 73) |
61 | COLON@[73; 74) | 61 | IDENT@[68; 73) "field" |
62 | WHITESPACE@[74; 75) | 62 | COLON@[73; 74) |
63 | LITERAL@[75; 76) | 63 | WHITESPACE@[74; 75) |
64 | INT_NUMBER@[75; 76) "0" | 64 | LITERAL@[75; 76) |
65 | R_CURLY@[76; 77) | 65 | INT_NUMBER@[75; 76) "0" |
66 | R_CURLY@[76; 77) | ||
66 | WHITESPACE@[77; 78) | 67 | WHITESPACE@[77; 78) |
67 | FAT_ARROW@[78; 80) | 68 | FAT_ARROW@[78; 80) |
68 | WHITESPACE@[80; 81) | 69 | WHITESPACE@[80; 81) |
@@ -82,13 +83,14 @@ SOURCE_FILE@[0; 167) | |||
82 | NAME@[97; 98) | 83 | NAME@[97; 98) |
83 | IDENT@[97; 98) "Y" | 84 | IDENT@[97; 98) "Y" |
84 | WHITESPACE@[98; 99) | 85 | WHITESPACE@[98; 99) |
85 | IF_KW@[99; 101) | 86 | MATCH_GUARD@[99; 103) |
86 | WHITESPACE@[101; 102) | 87 | IF_KW@[99; 101) |
87 | PATH_EXPR@[102; 103) | 88 | WHITESPACE@[101; 102) |
88 | PATH@[102; 103) | 89 | PATH_EXPR@[102; 103) |
89 | PATH_SEGMENT@[102; 103) | 90 | PATH@[102; 103) |
90 | NAME_REF@[102; 103) | 91 | PATH_SEGMENT@[102; 103) |
91 | IDENT@[102; 103) "Z" | 92 | NAME_REF@[102; 103) |
93 | IDENT@[102; 103) "Z" | ||
92 | WHITESPACE@[103; 104) | 94 | WHITESPACE@[103; 104) |
93 | FAT_ARROW@[104; 106) | 95 | FAT_ARROW@[104; 106) |
94 | WHITESPACE@[106; 107) | 96 | WHITESPACE@[106; 107) |
@@ -110,13 +112,14 @@ SOURCE_FILE@[0; 167) | |||
110 | NAME@[125; 126) | 112 | NAME@[125; 126) |
111 | IDENT@[125; 126) "Y" | 113 | IDENT@[125; 126) "Y" |
112 | WHITESPACE@[126; 127) | 114 | WHITESPACE@[126; 127) |
113 | IF_KW@[127; 129) | 115 | MATCH_GUARD@[127; 131) |
114 | WHITESPACE@[129; 130) | 116 | IF_KW@[127; 129) |
115 | PATH_EXPR@[130; 131) | 117 | WHITESPACE@[129; 130) |
116 | PATH@[130; 131) | 118 | PATH_EXPR@[130; 131) |
117 | PATH_SEGMENT@[130; 131) | 119 | PATH@[130; 131) |
118 | NAME_REF@[130; 131) | 120 | PATH_SEGMENT@[130; 131) |
119 | IDENT@[130; 131) "Z" | 121 | NAME_REF@[130; 131) |
122 | IDENT@[130; 131) "Z" | ||
120 | WHITESPACE@[131; 132) | 123 | WHITESPACE@[131; 132) |
121 | FAT_ARROW@[132; 134) | 124 | FAT_ARROW@[132; 134) |
122 | WHITESPACE@[134; 135) | 125 | 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 @@ | |||
1 | fn foo() { | ||
2 | match () { | ||
3 | _ if foo => (), | ||
4 | } | ||
5 | } | ||
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 @@ | |||
1 | SOURCE_FILE@[0; 58) | ||
2 | FN_DEF@[0; 57) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | WHITESPACE@[8; 9) | ||
11 | BLOCK@[9; 57) | ||
12 | L_CURLY@[9; 10) | ||
13 | WHITESPACE@[10; 15) | ||
14 | MATCH_EXPR@[15; 55) | ||
15 | MATCH_KW@[15; 20) | ||
16 | WHITESPACE@[20; 21) | ||
17 | TUPLE_EXPR@[21; 23) | ||
18 | L_PAREN@[21; 22) | ||
19 | R_PAREN@[22; 23) | ||
20 | WHITESPACE@[23; 24) | ||
21 | MATCH_ARM_LIST@[24; 55) | ||
22 | L_CURLY@[24; 25) | ||
23 | WHITESPACE@[25; 34) | ||
24 | MATCH_ARM@[34; 48) | ||
25 | PLACEHOLDER_PAT@[34; 35) | ||
26 | UNDERSCORE@[34; 35) | ||
27 | WHITESPACE@[35; 36) | ||
28 | MATCH_GUARD@[36; 42) | ||
29 | IF_KW@[36; 38) | ||
30 | WHITESPACE@[38; 39) | ||
31 | PATH_EXPR@[39; 42) | ||
32 | PATH@[39; 42) | ||
33 | PATH_SEGMENT@[39; 42) | ||
34 | NAME_REF@[39; 42) | ||
35 | IDENT@[39; 42) "foo" | ||
36 | WHITESPACE@[42; 43) | ||
37 | FAT_ARROW@[43; 45) | ||
38 | WHITESPACE@[45; 46) | ||
39 | TUPLE_EXPR@[46; 48) | ||
40 | L_PAREN@[46; 47) | ||
41 | R_PAREN@[47; 48) | ||
42 | COMMA@[48; 49) | ||
43 | WHITESPACE@[49; 54) | ||
44 | R_CURLY@[54; 55) | ||
45 | WHITESPACE@[55; 56) | ||
46 | R_CURLY@[56; 57) | ||
47 | WHITESPACE@[57; 58) | ||