aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests/patterns.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/tests/patterns.rs')
-rw-r--r--crates/ra_hir_ty/src/tests/patterns.rs480
1 files changed, 240 insertions, 240 deletions
diff --git a/crates/ra_hir_ty/src/tests/patterns.rs b/crates/ra_hir_ty/src/tests/patterns.rs
index 6ea51d5d3..af291092d 100644
--- a/crates/ra_hir_ty/src/tests/patterns.rs
+++ b/crates/ra_hir_ty/src/tests/patterns.rs
@@ -30,54 +30,54 @@ fn test(x: &i32) {
30} 30}
31"#), 31"#),
32 @r###" 32 @r###"
33 [9; 10) 'x': &i32 33 9..10 'x': &i32
34 [18; 369) '{ ...o_x; }': () 34 18..369 '{ ...o_x; }': ()
35 [28; 29) 'y': &i32 35 28..29 'y': &i32
36 [32; 33) 'x': &i32 36 32..33 'x': &i32
37 [43; 45) '&z': &i32 37 43..45 '&z': &i32
38 [44; 45) 'z': i32 38 44..45 'z': i32
39 [48; 49) 'x': &i32 39 48..49 'x': &i32
40 [59; 60) 'a': i32 40 59..60 'a': i32
41 [63; 64) 'z': i32 41 63..64 'z': i32
42 [74; 80) '(c, d)': (i32, &str) 42 74..80 '(c, d)': (i32, &str)
43 [75; 76) 'c': i32 43 75..76 'c': i32
44 [78; 79) 'd': &str 44 78..79 'd': &str
45 [83; 95) '(1, "hello")': (i32, &str) 45 83..95 '(1, "hello")': (i32, &str)
46 [84; 85) '1': i32 46 84..85 '1': i32
47 [87; 94) '"hello"': &str 47 87..94 '"hello"': &str
48 [102; 152) 'for (e... }': () 48 102..152 'for (e... }': ()
49 [106; 112) '(e, f)': ({unknown}, {unknown}) 49 106..112 '(e, f)': ({unknown}, {unknown})
50 [107; 108) 'e': {unknown} 50 107..108 'e': {unknown}
51 [110; 111) 'f': {unknown} 51 110..111 'f': {unknown}
52 [116; 125) 'some_iter': {unknown} 52 116..125 'some_iter': {unknown}
53 [126; 152) '{ ... }': () 53 126..152 '{ ... }': ()
54 [140; 141) 'g': {unknown} 54 140..141 'g': {unknown}
55 [144; 145) 'e': {unknown} 55 144..145 'e': {unknown}
56 [158; 205) 'if let... }': () 56 158..205 'if let... }': ()
57 [165; 170) '[val]': [{unknown}] 57 165..170 '[val]': [{unknown}]
58 [166; 169) 'val': {unknown} 58 166..169 'val': {unknown}
59 [173; 176) 'opt': [{unknown}] 59 173..176 'opt': [{unknown}]
60 [177; 205) '{ ... }': () 60 177..205 '{ ... }': ()
61 [191; 192) 'h': {unknown} 61 191..192 'h': {unknown}
62 [195; 198) 'val': {unknown} 62 195..198 'val': {unknown}
63 [215; 221) 'lambda': |u64, u64, i32| -> i32 63 215..221 'lambda': |u64, u64, i32| -> i32
64 [224; 256) '|a: u6...b; c }': |u64, u64, i32| -> i32 64 224..256 '|a: u6...b; c }': |u64, u64, i32| -> i32
65 [225; 226) 'a': u64 65 225..226 'a': u64
66 [233; 234) 'b': u64 66 233..234 'b': u64
67 [236; 237) 'c': i32 67 236..237 'c': i32
68 [244; 256) '{ a + b; c }': i32 68 244..256 '{ a + b; c }': i32
69 [246; 247) 'a': u64 69 246..247 'a': u64
70 [246; 251) 'a + b': u64 70 246..251 'a + b': u64
71 [250; 251) 'b': u64 71 250..251 'b': u64
72 [253; 254) 'c': i32 72 253..254 'c': i32
73 [267; 279) 'ref ref_to_x': &&i32 73 267..279 'ref ref_to_x': &&i32
74 [282; 283) 'x': &i32 74 282..283 'x': &i32
75 [293; 302) 'mut mut_x': &i32 75 293..302 'mut mut_x': &i32
76 [305; 306) 'x': &i32 76 305..306 'x': &i32
77 [316; 336) 'ref mu...f_to_x': &mut &i32 77 316..336 'ref mu...f_to_x': &mut &i32
78 [339; 340) 'x': &i32 78 339..340 'x': &i32
79 [350; 351) 'k': &mut &i32 79 350..351 'k': &mut &i32
80 [354; 366) 'mut_ref_to_x': &mut &i32 80 354..366 'mut_ref_to_x': &mut &i32
81 "### 81 "###
82 ); 82 );
83} 83}
@@ -97,47 +97,47 @@ fn test(x: &i32) {
97} 97}
98"#, true), 98"#, true),
99 @r###" 99 @r###"
100 [18; 29) '{ loop {} }': T 100 18..29 '{ loop {} }': T
101 [20; 27) 'loop {}': ! 101 20..27 'loop {}': !
102 [25; 27) '{}': () 102 25..27 '{}': ()
103 [38; 39) 'x': &i32 103 38..39 'x': &i32
104 [47; 209) '{ ...) {} }': () 104 47..209 '{ ...) {} }': ()
105 [53; 76) 'if let...y() {}': () 105 53..76 'if let...y() {}': ()
106 [60; 65) '"foo"': &str 106 60..65 '"foo"': &str
107 [60; 65) '"foo"': &str 107 60..65 '"foo"': &str
108 [68; 71) 'any': fn any<&str>() -> &str 108 68..71 'any': fn any<&str>() -> &str
109 [68; 73) 'any()': &str 109 68..73 'any()': &str
110 [74; 76) '{}': () 110 74..76 '{}': ()
111 [81; 100) 'if let...y() {}': () 111 81..100 'if let...y() {}': ()
112 [88; 89) '1': i32 112 88..89 '1': i32
113 [88; 89) '1': i32 113 88..89 '1': i32
114 [92; 95) 'any': fn any<i32>() -> i32 114 92..95 'any': fn any<i32>() -> i32
115 [92; 97) 'any()': i32 115 92..97 'any()': i32
116 [98; 100) '{}': () 116 98..100 '{}': ()
117 [105; 127) 'if let...y() {}': () 117 105..127 'if let...y() {}': ()
118 [112; 116) '1u32': u32 118 112..116 '1u32': u32
119 [112; 116) '1u32': u32 119 112..116 '1u32': u32
120 [119; 122) 'any': fn any<u32>() -> u32 120 119..122 'any': fn any<u32>() -> u32
121 [119; 124) 'any()': u32 121 119..124 'any()': u32
122 [125; 127) '{}': () 122 125..127 '{}': ()
123 [132; 154) 'if let...y() {}': () 123 132..154 'if let...y() {}': ()
124 [139; 143) '1f32': f32 124 139..143 '1f32': f32
125 [139; 143) '1f32': f32 125 139..143 '1f32': f32
126 [146; 149) 'any': fn any<f32>() -> f32 126 146..149 'any': fn any<f32>() -> f32
127 [146; 151) 'any()': f32 127 146..151 'any()': f32
128 [152; 154) '{}': () 128 152..154 '{}': ()
129 [159; 180) 'if let...y() {}': () 129 159..180 'if let...y() {}': ()
130 [166; 169) '1.0': f64 130 166..169 '1.0': f64
131 [166; 169) '1.0': f64 131 166..169 '1.0': f64
132 [172; 175) 'any': fn any<f64>() -> f64 132 172..175 'any': fn any<f64>() -> f64
133 [172; 177) 'any()': f64 133 172..177 'any()': f64
134 [178; 180) '{}': () 134 178..180 '{}': ()
135 [185; 207) 'if let...y() {}': () 135 185..207 'if let...y() {}': ()
136 [192; 196) 'true': bool 136 192..196 'true': bool
137 [192; 196) 'true': bool 137 192..196 'true': bool
138 [199; 202) 'any': fn any<bool>() -> bool 138 199..202 'any': fn any<bool>() -> bool
139 [199; 204) 'any()': bool 139 199..204 'any()': bool
140 [205; 207) '{}': () 140 205..207 '{}': ()
141 "### 141 "###
142 ); 142 );
143} 143}
@@ -152,16 +152,16 @@ fn test(x: &i32) {
152} 152}
153"#, true), 153"#, true),
154 @r###" 154 @r###"
155 [9; 10) 'x': &i32 155 9..10 'x': &i32
156 [18; 76) '{ ...2 {} }': () 156 18..76 '{ ...2 {} }': ()
157 [24; 46) 'if let...u32 {}': () 157 24..46 'if let...u32 {}': ()
158 [31; 36) '1..76': u32 158 31..36 '1..76': u32
159 [39; 43) '2u32': u32 159 39..43 '2u32': u32
160 [44; 46) '{}': () 160 44..46 '{}': ()
161 [51; 74) 'if let...u32 {}': () 161 51..74 'if let...u32 {}': ()
162 [58; 64) '1..=76': u32 162 58..64 '1..=76': u32
163 [67; 71) '2u32': u32 163 67..71 '2u32': u32
164 [72; 74) '{}': () 164 72..74 '{}': ()
165 "### 165 "###
166 ); 166 );
167} 167}
@@ -178,19 +178,19 @@ fn test() {
178} 178}
179"#), 179"#),
180 @r###" 180 @r###"
181 [28; 79) '{ ...(1); }': () 181 28..79 '{ ...(1); }': ()
182 [38; 42) 'A(n)': A<i32> 182 38..42 'A(n)': A<i32>
183 [40; 41) 'n': &i32 183 40..41 'n': &i32
184 [45; 50) '&A(1)': &A<i32> 184 45..50 '&A(1)': &A<i32>
185 [46; 47) 'A': A<i32>(i32) -> A<i32> 185 46..47 'A': A<i32>(i32) -> A<i32>
186 [46; 50) 'A(1)': A<i32> 186 46..50 'A(1)': A<i32>
187 [48; 49) '1': i32 187 48..49 '1': i32
188 [60; 64) 'A(n)': A<i32> 188 60..64 'A(n)': A<i32>
189 [62; 63) 'n': &mut i32 189 62..63 'n': &mut i32
190 [67; 76) '&mut A(1)': &mut A<i32> 190 67..76 '&mut A(1)': &mut A<i32>
191 [72; 73) 'A': A<i32>(i32) -> A<i32> 191 72..73 'A': A<i32>(i32) -> A<i32>
192 [72; 76) 'A(1)': A<i32> 192 72..76 'A(1)': A<i32>
193 [74; 75) '1': i32 193 74..75 '1': i32
194 "### 194 "###
195 ); 195 );
196} 196}
@@ -206,18 +206,18 @@ fn test() {
206} 206}
207"#), 207"#),
208 @r###" 208 @r###"
209 [11; 57) '{ ...= v; }': () 209 11..57 '{ ...= v; }': ()
210 [21; 22) 'v': &(i32, &i32) 210 21..22 'v': &(i32, &i32)
211 [25; 33) '&(1, &2)': &(i32, &i32) 211 25..33 '&(1, &2)': &(i32, &i32)
212 [26; 33) '(1, &2)': (i32, &i32) 212 26..33 '(1, &2)': (i32, &i32)
213 [27; 28) '1': i32 213 27..28 '1': i32
214 [30; 32) '&2': &i32 214 30..32 '&2': &i32
215 [31; 32) '2': i32 215 31..32 '2': i32
216 [43; 50) '(_, &w)': (i32, &i32) 216 43..50 '(_, &w)': (i32, &i32)
217 [44; 45) '_': i32 217 44..45 '_': i32
218 [47; 49) '&w': &i32 218 47..49 '&w': &i32
219 [48; 49) 'w': i32 219 48..49 'w': i32
220 [53; 54) 'v': &(i32, &i32) 220 53..54 'v': &(i32, &i32)
221 "### 221 "###
222 ); 222 );
223} 223}
@@ -242,30 +242,30 @@ fn test() {
242} 242}
243"#), 243"#),
244 @r###" 244 @r###"
245 [11; 210) '{ ... } }': () 245 11..210 '{ ... } }': ()
246 [21; 26) 'slice': &[f64] 246 21..26 'slice': &[f64]
247 [37; 43) '&[0.0]': &[f64; _] 247 37..43 '&[0.0]': &[f64; _]
248 [38; 43) '[0.0]': [f64; _] 248 38..43 '[0.0]': [f64; _]
249 [39; 42) '0.0': f64 249 39..42 '0.0': f64
250 [49; 208) 'match ... }': () 250 49..208 'match ... }': ()
251 [55; 60) 'slice': &[f64] 251 55..60 'slice': &[f64]
252 [71; 74) '&[]': &[f64] 252 71..74 '&[]': &[f64]
253 [72; 74) '[]': [f64] 253 72..74 '[]': [f64]
254 [78; 80) '{}': () 254 78..80 '{}': ()
255 [90; 94) '&[a]': &[f64] 255 90..94 '&[a]': &[f64]
256 [91; 94) '[a]': [f64] 256 91..94 '[a]': [f64]
257 [92; 93) 'a': f64 257 92..93 'a': f64
258 [98; 124) '{ ... }': () 258 98..124 '{ ... }': ()
259 [112; 113) 'a': f64 259 112..113 'a': f64
260 [134; 141) '&[b, c]': &[f64] 260 134..141 '&[b, c]': &[f64]
261 [135; 141) '[b, c]': [f64] 261 135..141 '[b, c]': [f64]
262 [136; 137) 'b': f64 262 136..137 'b': f64
263 [139; 140) 'c': f64 263 139..140 'c': f64
264 [145; 186) '{ ... }': () 264 145..186 '{ ... }': ()
265 [159; 160) 'b': f64 265 159..160 'b': f64
266 [174; 175) 'c': f64 266 174..175 'c': f64
267 [195; 196) '_': &[f64] 267 195..196 '_': &[f64]
268 [200; 202) '{}': () 268 200..202 '{}': ()
269 "### 269 "###
270 ); 270 );
271} 271}
@@ -288,25 +288,25 @@ fn test() {
288} 288}
289"#), 289"#),
290 @r###" 290 @r###"
291 [11; 180) '{ ... } }': () 291 11..180 '{ ... } }': ()
292 [21; 24) 'arr': [f64; _] 292 21..24 'arr': [f64; _]
293 [37; 47) '[0.0, 1.0]': [f64; _] 293 37..47 '[0.0, 1.0]': [f64; _]
294 [38; 41) '0.0': f64 294 38..41 '0.0': f64
295 [43; 46) '1.0': f64 295 43..46 '1.0': f64
296 [53; 178) 'match ... }': () 296 53..178 'match ... }': ()
297 [59; 62) 'arr': [f64; _] 297 59..62 'arr': [f64; _]
298 [73; 81) '[1.0, a]': [f64; _] 298 73..81 '[1.0, a]': [f64; _]
299 [74; 77) '1.0': f64 299 74..77 '1.0': f64
300 [74; 77) '1.0': f64 300 74..77 '1.0': f64
301 [79; 80) 'a': f64 301 79..80 'a': f64
302 [85; 111) '{ ... }': () 302 85..111 '{ ... }': ()
303 [99; 100) 'a': f64 303 99..100 'a': f64
304 [121; 127) '[b, c]': [f64; _] 304 121..127 '[b, c]': [f64; _]
305 [122; 123) 'b': f64 305 122..123 'b': f64
306 [125; 126) 'c': f64 306 125..126 'c': f64
307 [131; 172) '{ ... }': () 307 131..172 '{ ... }': ()
308 [145; 146) 'b': f64 308 145..146 'b': f64
309 [160; 161) 'c': f64 309 160..161 'c': f64
310 "### 310 "###
311 ); 311 );
312} 312}
@@ -339,31 +339,31 @@ fn test() {
339} 339}
340"#), 340"#),
341 @r###" 341 @r###"
342 [68; 289) '{ ... d; }': () 342 68..289 '{ ... d; }': ()
343 [78; 79) 'e': E 343 78..79 'e': E
344 [82; 95) 'E::A { x: 3 }': E 344 82..95 'E::A { x: 3 }': E
345 [92; 93) '3': usize 345 92..93 '3': usize
346 [106; 113) 'S(y, z)': S 346 106..113 'S(y, z)': S
347 [108; 109) 'y': u32 347 108..109 'y': u32
348 [111; 112) 'z': E 348 111..112 'z': E
349 [116; 119) 'foo': S 349 116..119 'foo': S
350 [129; 148) 'E::A {..._var }': E 350 129..148 'E::A {..._var }': E
351 [139; 146) 'new_var': usize 351 139..146 'new_var': usize
352 [151; 152) 'e': E 352 151..152 'e': E
353 [159; 245) 'match ... }': usize 353 159..245 'match ... }': usize
354 [165; 166) 'e': E 354 165..166 'e': E
355 [177; 187) 'E::A { x }': E 355 177..187 'E::A { x }': E
356 [184; 185) 'x': usize 356 184..185 'x': usize
357 [191; 192) 'x': usize 357 191..192 'x': usize
358 [202; 206) 'E::B': E 358 202..206 'E::B': E
359 [210; 213) 'foo': bool 359 210..213 'foo': bool
360 [217; 218) '1': usize 360 217..218 '1': usize
361 [228; 232) 'E::B': E 361 228..232 'E::B': E
362 [236; 238) '10': usize 362 236..238 '10': usize
363 [256; 275) 'ref d ...{ .. }': &E 363 256..275 'ref d ...{ .. }': &E
364 [264; 275) 'E::A { .. }': E 364 264..275 'E::A { .. }': E
365 [278; 279) 'e': E 365 278..279 'e': E
366 [285; 286) 'd': &E 366 285..286 'd': &E
367 "### 367 "###
368 ); 368 );
369} 369}
@@ -391,23 +391,23 @@ fn test(a1: A<u32>, o: Option<u64>) {
391} 391}
392"#), 392"#),
393 @r###" 393 @r###"
394 [79; 81) 'a1': A<u32> 394 79..81 'a1': A<u32>
395 [91; 92) 'o': Option<u64> 395 91..92 'o': Option<u64>
396 [107; 244) '{ ... }; }': () 396 107..244 '{ ... }; }': ()
397 [117; 128) 'A { x: x2 }': A<u32> 397 117..128 'A { x: x2 }': A<u32>
398 [124; 126) 'x2': u32 398 124..126 'x2': u32
399 [131; 133) 'a1': A<u32> 399 131..133 'a1': A<u32>
400 [143; 161) 'A::<i6...: x3 }': A<i64> 400 143..161 'A::<i6...: x3 }': A<i64>
401 [157; 159) 'x3': i64 401 157..159 'x3': i64
402 [164; 174) 'A { x: 1 }': A<i64> 402 164..174 'A { x: 1 }': A<i64>
403 [171; 172) '1': i64 403 171..172 '1': i64
404 [180; 241) 'match ... }': u64 404 180..241 'match ... }': u64
405 [186; 187) 'o': Option<u64> 405 186..187 'o': Option<u64>
406 [198; 213) 'Option::Some(t)': Option<u64> 406 198..213 'Option::Some(t)': Option<u64>
407 [211; 212) 't': u64 407 211..212 't': u64
408 [217; 218) 't': u64 408 217..218 't': u64
409 [228; 229) '_': Option<u64> 409 228..229 '_': Option<u64>
410 [233; 234) '1': u64 410 233..234 '1': u64
411 "### 411 "###
412 ); 412 );
413} 413}
@@ -431,27 +431,27 @@ fn test() {
431} 431}
432"#, true), 432"#, true),
433 @r###" 433 @r###"
434 [74; 75) '1': usize 434 74..75 '1': usize
435 [88; 310) '{ ...atch }': () 435 88..310 '{ ...atch }': ()
436 [98; 99) 'a': Option<u32> 436 98..99 'a': Option<u32>
437 [115; 119) 'None': Option<u32> 437 115..119 'None': Option<u32>
438 [129; 130) 'b': Option<i64> 438 129..130 'b': Option<i64>
439 [146; 183) 'match ... }': Option<i64> 439 146..183 'match ... }': Option<i64>
440 [152; 153) 'a': Option<u32> 440 152..153 'a': Option<u32>
441 [164; 168) 'None': Option<u32> 441 164..168 'None': Option<u32>
442 [172; 176) 'None': Option<i64> 442 172..176 'None': Option<i64>
443 [193; 194) '_': () 443 193..194 '_': ()
444 [201; 224) 'match ... Foo }': Foo 444 201..224 'match ... Foo }': Foo
445 [207; 209) '()': () 445 207..209 '()': ()
446 [212; 215) 'Foo': Foo 446 212..215 'Foo': Foo
447 [219; 222) 'Foo': Foo 447 219..222 'Foo': Foo
448 [255; 256) '_': () 448 255..256 '_': ()
449 [263; 286) 'match ... Bar }': usize 449 263..286 'match ... Bar }': usize
450 [269; 271) '()': () 450 269..271 '()': ()
451 [274; 277) 'Bar': usize 451 274..277 'Bar': usize
452 [281; 284) 'Bar': usize 452 281..284 'Bar': usize
453 [201; 224): expected (), got Foo 453 201..224: expected (), got Foo
454 [263; 286): expected (), got usize 454 263..286: expected (), got usize
455 "### 455 "###
456 ); 456 );
457} 457}
@@ -469,15 +469,15 @@ fn main() {
469 } 469 }
470} 470}
471 "#), @" 471 "#), @"
472 [28; 32) 'self': &S 472 28..32 'self': &S
473 [42; 51) '{ false }': bool 473 42..51 '{ false }': bool
474 [44; 49) 'false': bool 474 44..49 'false': bool
475 [65; 116) '{ ... } }': () 475 65..116 '{ ... } }': ()
476 [71; 114) 'match ... }': () 476 71..114 'match ... }': ()
477 [77; 78) 'S': S 477 77..78 'S': S
478 [89; 90) 's': S 478 89..90 's': S
479 [94; 95) 's': S 479 94..95 's': S
480 [94; 101) 's.foo()': bool 480 94..101 's.foo()': bool
481 [105; 107) '()': () 481 105..107 '()': ()
482 ") 482 ")
483} 483}