aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-04-24 22:51:02 +0100
committerAleksey Kladov <[email protected]>2020-04-25 10:59:18 +0100
commit8843588fca7a6022b86800d5d2539594c0de93cf (patch)
tree3c5162068377dbd53dbf40b602baeeed7aa82285 /crates/ra_ide/src/completion
parentb1d5817dd18b7b5fc102a63b084b1ee7ff4f9996 (diff)
Convert tests to text-size
Diffstat (limited to 'crates/ra_ide/src/completion')
-rw-r--r--crates/ra_ide/src/completion/complete_attribute.rs240
-rw-r--r--crates/ra_ide/src/completion/complete_dot.rs112
-rw-r--r--crates/ra_ide/src/completion/complete_fn_param.rs12
-rw-r--r--crates/ra_ide/src/completion/complete_keyword.rs252
-rw-r--r--crates/ra_ide/src/completion/complete_macro_in_item_position.rs16
-rw-r--r--crates/ra_ide/src/completion/complete_pattern.rs28
-rw-r--r--crates/ra_ide/src/completion/complete_postfix.rs128
-rw-r--r--crates/ra_ide/src/completion/complete_qualified_path.rs156
-rw-r--r--crates/ra_ide/src/completion/complete_record.rs60
-rw-r--r--crates/ra_ide/src/completion/complete_snippet.rs20
-rw-r--r--crates/ra_ide/src/completion/complete_trait_impl.rs47
-rw-r--r--crates/ra_ide/src/completion/complete_unqualified_path.rs308
-rw-r--r--crates/ra_ide/src/completion/presentation.rs200
13 files changed, 789 insertions, 790 deletions
diff --git a/crates/ra_ide/src/completion/complete_attribute.rs b/crates/ra_ide/src/completion/complete_attribute.rs
index b405042e8..8bf952798 100644
--- a/crates/ra_ide/src/completion/complete_attribute.rs
+++ b/crates/ra_ide/src/completion/complete_attribute.rs
@@ -147,190 +147,190 @@ mod tests {
147 [ 147 [
148 CompletionItem { 148 CompletionItem {
149 label: "allow", 149 label: "allow",
150 source_range: [19; 19), 150 source_range: 19..19,
151 delete: [19; 19), 151 delete: 19..19,
152 insert: "allow(${0:lint})", 152 insert: "allow(${0:lint})",
153 kind: Attribute, 153 kind: Attribute,
154 }, 154 },
155 CompletionItem { 155 CompletionItem {
156 label: "cfg", 156 label: "cfg",
157 source_range: [19; 19), 157 source_range: 19..19,
158 delete: [19; 19), 158 delete: 19..19,
159 insert: "cfg(${0:predicate})", 159 insert: "cfg(${0:predicate})",
160 kind: Attribute, 160 kind: Attribute,
161 }, 161 },
162 CompletionItem { 162 CompletionItem {
163 label: "cfg_attr", 163 label: "cfg_attr",
164 source_range: [19; 19), 164 source_range: 19..19,
165 delete: [19; 19), 165 delete: 19..19,
166 insert: "cfg_attr(${1:predicate}, ${0:attr})", 166 insert: "cfg_attr(${1:predicate}, ${0:attr})",
167 kind: Attribute, 167 kind: Attribute,
168 }, 168 },
169 CompletionItem { 169 CompletionItem {
170 label: "deny", 170 label: "deny",
171 source_range: [19; 19), 171 source_range: 19..19,
172 delete: [19; 19), 172 delete: 19..19,
173 insert: "deny(${0:lint})", 173 insert: "deny(${0:lint})",
174 kind: Attribute, 174 kind: Attribute,
175 }, 175 },
176 CompletionItem { 176 CompletionItem {
177 label: "deprecated", 177 label: "deprecated",
178 source_range: [19; 19), 178 source_range: 19..19,
179 delete: [19; 19), 179 delete: 19..19,
180 insert: "deprecated = \"${0:reason}\"", 180 insert: "deprecated = \"${0:reason}\"",
181 kind: Attribute, 181 kind: Attribute,
182 }, 182 },
183 CompletionItem { 183 CompletionItem {
184 label: "derive", 184 label: "derive",
185 source_range: [19; 19), 185 source_range: 19..19,
186 delete: [19; 19), 186 delete: 19..19,
187 insert: "derive(${0:Debug})", 187 insert: "derive(${0:Debug})",
188 kind: Attribute, 188 kind: Attribute,
189 }, 189 },
190 CompletionItem { 190 CompletionItem {
191 label: "doc", 191 label: "doc",
192 source_range: [19; 19), 192 source_range: 19..19,
193 delete: [19; 19), 193 delete: 19..19,
194 insert: "doc = \"${0:docs}\"", 194 insert: "doc = \"${0:docs}\"",
195 kind: Attribute, 195 kind: Attribute,
196 }, 196 },
197 CompletionItem { 197 CompletionItem {
198 label: "forbid", 198 label: "forbid",
199 source_range: [19; 19), 199 source_range: 19..19,
200 delete: [19; 19), 200 delete: 19..19,
201 insert: "forbid(${0:lint})", 201 insert: "forbid(${0:lint})",
202 kind: Attribute, 202 kind: Attribute,
203 }, 203 },
204 CompletionItem { 204 CompletionItem {
205 label: "ignore", 205 label: "ignore",
206 source_range: [19; 19), 206 source_range: 19..19,
207 delete: [19; 19), 207 delete: 19..19,
208 insert: "ignore(${0:lint})", 208 insert: "ignore(${0:lint})",
209 kind: Attribute, 209 kind: Attribute,
210 }, 210 },
211 CompletionItem { 211 CompletionItem {
212 label: "inline", 212 label: "inline",
213 source_range: [19; 19), 213 source_range: 19..19,
214 delete: [19; 19), 214 delete: 19..19,
215 insert: "inline(${0:lint})", 215 insert: "inline(${0:lint})",
216 kind: Attribute, 216 kind: Attribute,
217 }, 217 },
218 CompletionItem { 218 CompletionItem {
219 label: "link", 219 label: "link",
220 source_range: [19; 19), 220 source_range: 19..19,
221 delete: [19; 19), 221 delete: 19..19,
222 insert: "link", 222 insert: "link",
223 kind: Attribute, 223 kind: Attribute,
224 }, 224 },
225 CompletionItem { 225 CompletionItem {
226 label: "link_name", 226 label: "link_name",
227 source_range: [19; 19), 227 source_range: 19..19,
228 delete: [19; 19), 228 delete: 19..19,
229 insert: "link_name = \"${0:symbol_name}\"", 229 insert: "link_name = \"${0:symbol_name}\"",
230 kind: Attribute, 230 kind: Attribute,
231 }, 231 },
232 CompletionItem { 232 CompletionItem {
233 label: "macro_export", 233 label: "macro_export",
234 source_range: [19; 19), 234 source_range: 19..19,
235 delete: [19; 19), 235 delete: 19..19,
236 insert: "macro_export", 236 insert: "macro_export",
237 kind: Attribute, 237 kind: Attribute,
238 }, 238 },
239 CompletionItem { 239 CompletionItem {
240 label: "macro_use", 240 label: "macro_use",
241 source_range: [19; 19), 241 source_range: 19..19,
242 delete: [19; 19), 242 delete: 19..19,
243 insert: "macro_use", 243 insert: "macro_use",
244 kind: Attribute, 244 kind: Attribute,
245 }, 245 },
246 CompletionItem { 246 CompletionItem {
247 label: "must_use", 247 label: "must_use",
248 source_range: [19; 19), 248 source_range: 19..19,
249 delete: [19; 19), 249 delete: 19..19,
250 insert: "must_use = \"${0:reason}\"", 250 insert: "must_use = \"${0:reason}\"",
251 kind: Attribute, 251 kind: Attribute,
252 }, 252 },
253 CompletionItem { 253 CompletionItem {
254 label: "no_mangle", 254 label: "no_mangle",
255 source_range: [19; 19), 255 source_range: 19..19,
256 delete: [19; 19), 256 delete: 19..19,
257 insert: "no_mangle", 257 insert: "no_mangle",
258 kind: Attribute, 258 kind: Attribute,
259 }, 259 },
260 CompletionItem { 260 CompletionItem {
261 label: "non_exhaustive", 261 label: "non_exhaustive",
262 source_range: [19; 19), 262 source_range: 19..19,
263 delete: [19; 19), 263 delete: 19..19,
264 insert: "non_exhaustive", 264 insert: "non_exhaustive",
265 kind: Attribute, 265 kind: Attribute,
266 }, 266 },
267 CompletionItem { 267 CompletionItem {
268 label: "path", 268 label: "path",
269 source_range: [19; 19), 269 source_range: 19..19,
270 delete: [19; 19), 270 delete: 19..19,
271 insert: "path =\"${0:path}\"", 271 insert: "path =\"${0:path}\"",
272 kind: Attribute, 272 kind: Attribute,
273 }, 273 },
274 CompletionItem { 274 CompletionItem {
275 label: "proc_macro", 275 label: "proc_macro",
276 source_range: [19; 19), 276 source_range: 19..19,
277 delete: [19; 19), 277 delete: 19..19,
278 insert: "proc_macro", 278 insert: "proc_macro",
279 kind: Attribute, 279 kind: Attribute,
280 }, 280 },
281 CompletionItem { 281 CompletionItem {
282 label: "proc_macro_attribute", 282 label: "proc_macro_attribute",
283 source_range: [19; 19), 283 source_range: 19..19,
284 delete: [19; 19), 284 delete: 19..19,
285 insert: "proc_macro_attribute", 285 insert: "proc_macro_attribute",
286 kind: Attribute, 286 kind: Attribute,
287 }, 287 },
288 CompletionItem { 288 CompletionItem {
289 label: "proc_macro_derive", 289 label: "proc_macro_derive",
290 source_range: [19; 19), 290 source_range: 19..19,
291 delete: [19; 19), 291 delete: 19..19,
292 insert: "proc_macro_derive(${0:Trait})", 292 insert: "proc_macro_derive(${0:Trait})",
293 kind: Attribute, 293 kind: Attribute,
294 }, 294 },
295 CompletionItem { 295 CompletionItem {
296 label: "repr", 296 label: "repr",
297 source_range: [19; 19), 297 source_range: 19..19,
298 delete: [19; 19), 298 delete: 19..19,
299 insert: "repr(${0:C})", 299 insert: "repr(${0:C})",
300 kind: Attribute, 300 kind: Attribute,
301 }, 301 },
302 CompletionItem { 302 CompletionItem {
303 label: "should_panic", 303 label: "should_panic",
304 source_range: [19; 19), 304 source_range: 19..19,
305 delete: [19; 19), 305 delete: 19..19,
306 insert: "expected = \"${0:reason}\"", 306 insert: "expected = \"${0:reason}\"",
307 kind: Attribute, 307 kind: Attribute,
308 }, 308 },
309 CompletionItem { 309 CompletionItem {
310 label: "target_feature", 310 label: "target_feature",
311 source_range: [19; 19), 311 source_range: 19..19,
312 delete: [19; 19), 312 delete: 19..19,
313 insert: "target_feature = \"${0:feature}\"", 313 insert: "target_feature = \"${0:feature}\"",
314 kind: Attribute, 314 kind: Attribute,
315 }, 315 },
316 CompletionItem { 316 CompletionItem {
317 label: "test", 317 label: "test",
318 source_range: [19; 19), 318 source_range: 19..19,
319 delete: [19; 19), 319 delete: 19..19,
320 insert: "test", 320 insert: "test",
321 kind: Attribute, 321 kind: Attribute,
322 }, 322 },
323 CompletionItem { 323 CompletionItem {
324 label: "used", 324 label: "used",
325 source_range: [19; 19), 325 source_range: 19..19,
326 delete: [19; 19), 326 delete: 19..19,
327 insert: "used", 327 insert: "used",
328 kind: Attribute, 328 kind: Attribute,
329 }, 329 },
330 CompletionItem { 330 CompletionItem {
331 label: "warn", 331 label: "warn",
332 source_range: [19; 19), 332 source_range: 19..19,
333 delete: [19; 19), 333 delete: 19..19,
334 insert: "warn(${0:lint})", 334 insert: "warn(${0:lint})",
335 kind: Attribute, 335 kind: Attribute,
336 }, 336 },
@@ -351,232 +351,232 @@ mod tests {
351 [ 351 [
352 CompletionItem { 352 CompletionItem {
353 label: "allow", 353 label: "allow",
354 source_range: [20; 20), 354 source_range: 20..20,
355 delete: [20; 20), 355 delete: 20..20,
356 insert: "allow(${0:lint})", 356 insert: "allow(${0:lint})",
357 kind: Attribute, 357 kind: Attribute,
358 }, 358 },
359 CompletionItem { 359 CompletionItem {
360 label: "cfg", 360 label: "cfg",
361 source_range: [20; 20), 361 source_range: 20..20,
362 delete: [20; 20), 362 delete: 20..20,
363 insert: "cfg(${0:predicate})", 363 insert: "cfg(${0:predicate})",
364 kind: Attribute, 364 kind: Attribute,
365 }, 365 },
366 CompletionItem { 366 CompletionItem {
367 label: "cfg_attr", 367 label: "cfg_attr",
368 source_range: [20; 20), 368 source_range: 20..20,
369 delete: [20; 20), 369 delete: 20..20,
370 insert: "cfg_attr(${1:predicate}, ${0:attr})", 370 insert: "cfg_attr(${1:predicate}, ${0:attr})",
371 kind: Attribute, 371 kind: Attribute,
372 }, 372 },
373 CompletionItem { 373 CompletionItem {
374 label: "deny", 374 label: "deny",
375 source_range: [20; 20), 375 source_range: 20..20,
376 delete: [20; 20), 376 delete: 20..20,
377 insert: "deny(${0:lint})", 377 insert: "deny(${0:lint})",
378 kind: Attribute, 378 kind: Attribute,
379 }, 379 },
380 CompletionItem { 380 CompletionItem {
381 label: "deprecated", 381 label: "deprecated",
382 source_range: [20; 20), 382 source_range: 20..20,
383 delete: [20; 20), 383 delete: 20..20,
384 insert: "deprecated = \"${0:reason}\"", 384 insert: "deprecated = \"${0:reason}\"",
385 kind: Attribute, 385 kind: Attribute,
386 }, 386 },
387 CompletionItem { 387 CompletionItem {
388 label: "derive", 388 label: "derive",
389 source_range: [20; 20), 389 source_range: 20..20,
390 delete: [20; 20), 390 delete: 20..20,
391 insert: "derive(${0:Debug})", 391 insert: "derive(${0:Debug})",
392 kind: Attribute, 392 kind: Attribute,
393 }, 393 },
394 CompletionItem { 394 CompletionItem {
395 label: "doc", 395 label: "doc",
396 source_range: [20; 20), 396 source_range: 20..20,
397 delete: [20; 20), 397 delete: 20..20,
398 insert: "doc = \"${0:docs}\"", 398 insert: "doc = \"${0:docs}\"",
399 kind: Attribute, 399 kind: Attribute,
400 }, 400 },
401 CompletionItem { 401 CompletionItem {
402 label: "feature", 402 label: "feature",
403 source_range: [20; 20), 403 source_range: 20..20,
404 delete: [20; 20), 404 delete: 20..20,
405 insert: "feature(${0:flag})", 405 insert: "feature(${0:flag})",
406 kind: Attribute, 406 kind: Attribute,
407 }, 407 },
408 CompletionItem { 408 CompletionItem {
409 label: "forbid", 409 label: "forbid",
410 source_range: [20; 20), 410 source_range: 20..20,
411 delete: [20; 20), 411 delete: 20..20,
412 insert: "forbid(${0:lint})", 412 insert: "forbid(${0:lint})",
413 kind: Attribute, 413 kind: Attribute,
414 }, 414 },
415 CompletionItem { 415 CompletionItem {
416 label: "global_allocator", 416 label: "global_allocator",
417 source_range: [20; 20), 417 source_range: 20..20,
418 delete: [20; 20), 418 delete: 20..20,
419 insert: "global_allocator", 419 insert: "global_allocator",
420 kind: Attribute, 420 kind: Attribute,
421 }, 421 },
422 CompletionItem { 422 CompletionItem {
423 label: "ignore", 423 label: "ignore",
424 source_range: [20; 20), 424 source_range: 20..20,
425 delete: [20; 20), 425 delete: 20..20,
426 insert: "ignore(${0:lint})", 426 insert: "ignore(${0:lint})",
427 kind: Attribute, 427 kind: Attribute,
428 }, 428 },
429 CompletionItem { 429 CompletionItem {
430 label: "inline", 430 label: "inline",
431 source_range: [20; 20), 431 source_range: 20..20,
432 delete: [20; 20), 432 delete: 20..20,
433 insert: "inline(${0:lint})", 433 insert: "inline(${0:lint})",
434 kind: Attribute, 434 kind: Attribute,
435 }, 435 },
436 CompletionItem { 436 CompletionItem {
437 label: "link", 437 label: "link",
438 source_range: [20; 20), 438 source_range: 20..20,
439 delete: [20; 20), 439 delete: 20..20,
440 insert: "link", 440 insert: "link",
441 kind: Attribute, 441 kind: Attribute,
442 }, 442 },
443 CompletionItem { 443 CompletionItem {
444 label: "link_name", 444 label: "link_name",
445 source_range: [20; 20), 445 source_range: 20..20,
446 delete: [20; 20), 446 delete: 20..20,
447 insert: "link_name = \"${0:symbol_name}\"", 447 insert: "link_name = \"${0:symbol_name}\"",
448 kind: Attribute, 448 kind: Attribute,
449 }, 449 },
450 CompletionItem { 450 CompletionItem {
451 label: "macro_export", 451 label: "macro_export",
452 source_range: [20; 20), 452 source_range: 20..20,
453 delete: [20; 20), 453 delete: 20..20,
454 insert: "macro_export", 454 insert: "macro_export",
455 kind: Attribute, 455 kind: Attribute,
456 }, 456 },
457 CompletionItem { 457 CompletionItem {
458 label: "macro_use", 458 label: "macro_use",
459 source_range: [20; 20), 459 source_range: 20..20,
460 delete: [20; 20), 460 delete: 20..20,
461 insert: "macro_use", 461 insert: "macro_use",
462 kind: Attribute, 462 kind: Attribute,
463 }, 463 },
464 CompletionItem { 464 CompletionItem {
465 label: "must_use", 465 label: "must_use",
466 source_range: [20; 20), 466 source_range: 20..20,
467 delete: [20; 20), 467 delete: 20..20,
468 insert: "must_use = \"${0:reason}\"", 468 insert: "must_use = \"${0:reason}\"",
469 kind: Attribute, 469 kind: Attribute,
470 }, 470 },
471 CompletionItem { 471 CompletionItem {
472 label: "no_mangle", 472 label: "no_mangle",
473 source_range: [20; 20), 473 source_range: 20..20,
474 delete: [20; 20), 474 delete: 20..20,
475 insert: "no_mangle", 475 insert: "no_mangle",
476 kind: Attribute, 476 kind: Attribute,
477 }, 477 },
478 CompletionItem { 478 CompletionItem {
479 label: "no_std", 479 label: "no_std",
480 source_range: [20; 20), 480 source_range: 20..20,
481 delete: [20; 20), 481 delete: 20..20,
482 insert: "no_std", 482 insert: "no_std",
483 kind: Attribute, 483 kind: Attribute,
484 }, 484 },
485 CompletionItem { 485 CompletionItem {
486 label: "non_exhaustive", 486 label: "non_exhaustive",
487 source_range: [20; 20), 487 source_range: 20..20,
488 delete: [20; 20), 488 delete: 20..20,
489 insert: "non_exhaustive", 489 insert: "non_exhaustive",
490 kind: Attribute, 490 kind: Attribute,
491 }, 491 },
492 CompletionItem { 492 CompletionItem {
493 label: "panic_handler", 493 label: "panic_handler",
494 source_range: [20; 20), 494 source_range: 20..20,
495 delete: [20; 20), 495 delete: 20..20,
496 insert: "panic_handler", 496 insert: "panic_handler",
497 kind: Attribute, 497 kind: Attribute,
498 }, 498 },
499 CompletionItem { 499 CompletionItem {
500 label: "path", 500 label: "path",
501 source_range: [20; 20), 501 source_range: 20..20,
502 delete: [20; 20), 502 delete: 20..20,
503 insert: "path =\"${0:path}\"", 503 insert: "path =\"${0:path}\"",
504 kind: Attribute, 504 kind: Attribute,
505 }, 505 },
506 CompletionItem { 506 CompletionItem {
507 label: "proc_macro", 507 label: "proc_macro",
508 source_range: [20; 20), 508 source_range: 20..20,
509 delete: [20; 20), 509 delete: 20..20,
510 insert: "proc_macro", 510 insert: "proc_macro",
511 kind: Attribute, 511 kind: Attribute,
512 }, 512 },
513 CompletionItem { 513 CompletionItem {
514 label: "proc_macro_attribute", 514 label: "proc_macro_attribute",
515 source_range: [20; 20), 515 source_range: 20..20,
516 delete: [20; 20), 516 delete: 20..20,
517 insert: "proc_macro_attribute", 517 insert: "proc_macro_attribute",
518 kind: Attribute, 518 kind: Attribute,
519 }, 519 },
520 CompletionItem { 520 CompletionItem {
521 label: "proc_macro_derive", 521 label: "proc_macro_derive",
522 source_range: [20; 20), 522 source_range: 20..20,
523 delete: [20; 20), 523 delete: 20..20,
524 insert: "proc_macro_derive(${0:Trait})", 524 insert: "proc_macro_derive(${0:Trait})",
525 kind: Attribute, 525 kind: Attribute,
526 }, 526 },
527 CompletionItem { 527 CompletionItem {
528 label: "recursion_limit", 528 label: "recursion_limit",
529 source_range: [20; 20), 529 source_range: 20..20,
530 delete: [20; 20), 530 delete: 20..20,
531 insert: "recursion_limit = ${0:128}", 531 insert: "recursion_limit = ${0:128}",
532 kind: Attribute, 532 kind: Attribute,
533 }, 533 },
534 CompletionItem { 534 CompletionItem {
535 label: "repr", 535 label: "repr",
536 source_range: [20; 20), 536 source_range: 20..20,
537 delete: [20; 20), 537 delete: 20..20,
538 insert: "repr(${0:C})", 538 insert: "repr(${0:C})",
539 kind: Attribute, 539 kind: Attribute,
540 }, 540 },
541 CompletionItem { 541 CompletionItem {
542 label: "should_panic", 542 label: "should_panic",
543 source_range: [20; 20), 543 source_range: 20..20,
544 delete: [20; 20), 544 delete: 20..20,
545 insert: "expected = \"${0:reason}\"", 545 insert: "expected = \"${0:reason}\"",
546 kind: Attribute, 546 kind: Attribute,
547 }, 547 },
548 CompletionItem { 548 CompletionItem {
549 label: "target_feature", 549 label: "target_feature",
550 source_range: [20; 20), 550 source_range: 20..20,
551 delete: [20; 20), 551 delete: 20..20,
552 insert: "target_feature = \"${0:feature}\"", 552 insert: "target_feature = \"${0:feature}\"",
553 kind: Attribute, 553 kind: Attribute,
554 }, 554 },
555 CompletionItem { 555 CompletionItem {
556 label: "test", 556 label: "test",
557 source_range: [20; 20), 557 source_range: 20..20,
558 delete: [20; 20), 558 delete: 20..20,
559 insert: "test", 559 insert: "test",
560 kind: Attribute, 560 kind: Attribute,
561 }, 561 },
562 CompletionItem { 562 CompletionItem {
563 label: "used", 563 label: "used",
564 source_range: [20; 20), 564 source_range: 20..20,
565 delete: [20; 20), 565 delete: 20..20,
566 insert: "used", 566 insert: "used",
567 kind: Attribute, 567 kind: Attribute,
568 }, 568 },
569 CompletionItem { 569 CompletionItem {
570 label: "warn", 570 label: "warn",
571 source_range: [20; 20), 571 source_range: 20..20,
572 delete: [20; 20), 572 delete: 20..20,
573 insert: "warn(${0:lint})", 573 insert: "warn(${0:lint})",
574 kind: Attribute, 574 kind: Attribute,
575 }, 575 },
576 CompletionItem { 576 CompletionItem {
577 label: "windows_subsystem", 577 label: "windows_subsystem",
578 source_range: [20; 20), 578 source_range: 20..20,
579 delete: [20; 20), 579 delete: 20..20,
580 insert: "windows_subsystem = \"${0:subsystem}\"", 580 insert: "windows_subsystem = \"${0:subsystem}\"",
581 kind: Attribute, 581 kind: Attribute,
582 }, 582 },
diff --git a/crates/ra_ide/src/completion/complete_dot.rs b/crates/ra_ide/src/completion/complete_dot.rs
index b93153b48..814354ffa 100644
--- a/crates/ra_ide/src/completion/complete_dot.rs
+++ b/crates/ra_ide/src/completion/complete_dot.rs
@@ -94,8 +94,8 @@ mod tests {
94 [ 94 [
95 CompletionItem { 95 CompletionItem {
96 label: "the_field", 96 label: "the_field",
97 source_range: [94; 94), 97 source_range: 94..94,
98 delete: [94; 94), 98 delete: 94..94,
99 insert: "the_field", 99 insert: "the_field",
100 kind: Field, 100 kind: Field,
101 detail: "u32", 101 detail: "u32",
@@ -125,8 +125,8 @@ mod tests {
125 [ 125 [
126 CompletionItem { 126 CompletionItem {
127 label: "foo()", 127 label: "foo()",
128 source_range: [187; 187), 128 source_range: 187..187,
129 delete: [187; 187), 129 delete: 187..187,
130 insert: "foo()$0", 130 insert: "foo()$0",
131 kind: Method, 131 kind: Method,
132 lookup: "foo", 132 lookup: "foo",
@@ -134,8 +134,8 @@ mod tests {
134 }, 134 },
135 CompletionItem { 135 CompletionItem {
136 label: "the_field", 136 label: "the_field",
137 source_range: [187; 187), 137 source_range: 187..187,
138 delete: [187; 187), 138 delete: 187..187,
139 insert: "the_field", 139 insert: "the_field",
140 kind: Field, 140 kind: Field,
141 detail: "(u32,)", 141 detail: "(u32,)",
@@ -165,8 +165,8 @@ mod tests {
165 [ 165 [
166 CompletionItem { 166 CompletionItem {
167 label: "foo()", 167 label: "foo()",
168 source_range: [126; 126), 168 source_range: 126..126,
169 delete: [126; 126), 169 delete: 126..126,
170 insert: "foo()$0", 170 insert: "foo()$0",
171 kind: Method, 171 kind: Method,
172 lookup: "foo", 172 lookup: "foo",
@@ -174,8 +174,8 @@ mod tests {
174 }, 174 },
175 CompletionItem { 175 CompletionItem {
176 label: "the_field", 176 label: "the_field",
177 source_range: [126; 126), 177 source_range: 126..126,
178 delete: [126; 126), 178 delete: 126..126,
179 insert: "the_field", 179 insert: "the_field",
180 kind: Field, 180 kind: Field,
181 detail: "(u32, i32)", 181 detail: "(u32, i32)",
@@ -222,24 +222,24 @@ mod tests {
222 [ 222 [
223 CompletionItem { 223 CompletionItem {
224 label: "crate_field", 224 label: "crate_field",
225 source_range: [313; 313), 225 source_range: 313..313,
226 delete: [313; 313), 226 delete: 313..313,
227 insert: "crate_field", 227 insert: "crate_field",
228 kind: Field, 228 kind: Field,
229 detail: "u32", 229 detail: "u32",
230 }, 230 },
231 CompletionItem { 231 CompletionItem {
232 label: "pub_field", 232 label: "pub_field",
233 source_range: [313; 313), 233 source_range: 313..313,
234 delete: [313; 313), 234 delete: 313..313,
235 insert: "pub_field", 235 insert: "pub_field",
236 kind: Field, 236 kind: Field,
237 detail: "u32", 237 detail: "u32",
238 }, 238 },
239 CompletionItem { 239 CompletionItem {
240 label: "super_field", 240 label: "super_field",
241 source_range: [313; 313), 241 source_range: 313..313,
242 delete: [313; 313), 242 delete: 313..313,
243 insert: "super_field", 243 insert: "super_field",
244 kind: Field, 244 kind: Field,
245 detail: "u32", 245 detail: "u32",
@@ -267,8 +267,8 @@ mod tests {
267 [ 267 [
268 CompletionItem { 268 CompletionItem {
269 label: "the_method()", 269 label: "the_method()",
270 source_range: [144; 144), 270 source_range: 144..144,
271 delete: [144; 144), 271 delete: 144..144,
272 insert: "the_method()$0", 272 insert: "the_method()$0",
273 kind: Method, 273 kind: Method,
274 lookup: "the_method", 274 lookup: "the_method",
@@ -300,8 +300,8 @@ mod tests {
300 [ 300 [
301 CompletionItem { 301 CompletionItem {
302 label: "the_method()", 302 label: "the_method()",
303 source_range: [243; 243), 303 source_range: 243..243,
304 delete: [243; 243), 304 delete: 243..243,
305 insert: "the_method()$0", 305 insert: "the_method()$0",
306 kind: Method, 306 kind: Method,
307 lookup: "the_method", 307 lookup: "the_method",
@@ -333,8 +333,8 @@ mod tests {
333 [ 333 [
334 CompletionItem { 334 CompletionItem {
335 label: "the_method()", 335 label: "the_method()",
336 source_range: [256; 256), 336 source_range: 256..256,
337 delete: [256; 256), 337 delete: 256..256,
338 insert: "the_method()$0", 338 insert: "the_method()$0",
339 kind: Method, 339 kind: Method,
340 lookup: "the_method", 340 lookup: "the_method",
@@ -362,8 +362,8 @@ mod tests {
362 [ 362 [
363 CompletionItem { 363 CompletionItem {
364 label: "the_method()", 364 label: "the_method()",
365 source_range: [151; 151), 365 source_range: 151..151,
366 delete: [151; 151), 366 delete: 151..151,
367 insert: "the_method()$0", 367 insert: "the_method()$0",
368 kind: Method, 368 kind: Method,
369 lookup: "the_method", 369 lookup: "the_method",
@@ -391,8 +391,8 @@ mod tests {
391 [ 391 [
392 CompletionItem { 392 CompletionItem {
393 label: "the_method()", 393 label: "the_method()",
394 source_range: [155; 155), 394 source_range: 155..155,
395 delete: [155; 155), 395 delete: 155..155,
396 insert: "the_method()$0", 396 insert: "the_method()$0",
397 kind: Method, 397 kind: Method,
398 lookup: "the_method", 398 lookup: "the_method",
@@ -423,8 +423,8 @@ mod tests {
423 [ 423 [
424 CompletionItem { 424 CompletionItem {
425 label: "the_method()", 425 label: "the_method()",
426 source_range: [219; 219), 426 source_range: 219..219,
427 delete: [219; 219), 427 delete: 219..219,
428 insert: "the_method()$0", 428 insert: "the_method()$0",
429 kind: Method, 429 kind: Method,
430 lookup: "the_method", 430 lookup: "the_method",
@@ -475,8 +475,8 @@ mod tests {
475 [ 475 [
476 CompletionItem { 476 CompletionItem {
477 label: "the_method()", 477 label: "the_method()",
478 source_range: [249; 249), 478 source_range: 249..249,
479 delete: [249; 249), 479 delete: 249..249,
480 insert: "the_method()$0", 480 insert: "the_method()$0",
481 kind: Method, 481 kind: Method,
482 lookup: "the_method", 482 lookup: "the_method",
@@ -502,16 +502,16 @@ mod tests {
502 [ 502 [
503 CompletionItem { 503 CompletionItem {
504 label: "0", 504 label: "0",
505 source_range: [75; 75), 505 source_range: 75..75,
506 delete: [75; 75), 506 delete: 75..75,
507 insert: "0", 507 insert: "0",
508 kind: Field, 508 kind: Field,
509 detail: "i32", 509 detail: "i32",
510 }, 510 },
511 CompletionItem { 511 CompletionItem {
512 label: "1", 512 label: "1",
513 source_range: [75; 75), 513 source_range: 75..75,
514 delete: [75; 75), 514 delete: 75..75,
515 insert: "1", 515 insert: "1",
516 kind: Field, 516 kind: Field,
517 detail: "f64", 517 detail: "f64",
@@ -545,8 +545,8 @@ mod tests {
545 [ 545 [
546 CompletionItem { 546 CompletionItem {
547 label: "blah()", 547 label: "blah()",
548 source_range: [299; 300), 548 source_range: 299..300,
549 delete: [299; 300), 549 delete: 299..300,
550 insert: "blah()$0", 550 insert: "blah()$0",
551 kind: Method, 551 kind: Method,
552 lookup: "blah", 552 lookup: "blah",
@@ -572,8 +572,8 @@ mod tests {
572 [ 572 [
573 CompletionItem { 573 CompletionItem {
574 label: "the_field", 574 label: "the_field",
575 source_range: [106; 106), 575 source_range: 106..106,
576 delete: [106; 106), 576 delete: 106..106,
577 insert: "the_field", 577 insert: "the_field",
578 kind: Field, 578 kind: Field,
579 detail: "u32", 579 detail: "u32",
@@ -606,8 +606,8 @@ mod tests {
606 [ 606 [
607 CompletionItem { 607 CompletionItem {
608 label: "await", 608 label: "await",
609 source_range: [74; 74), 609 source_range: 74..74,
610 delete: [74; 74), 610 delete: 74..74,
611 insert: "await", 611 insert: "await",
612 detail: "expr.await", 612 detail: "expr.await",
613 }, 613 },
@@ -638,15 +638,15 @@ mod tests {
638 [ 638 [
639 CompletionItem { 639 CompletionItem {
640 label: "A", 640 label: "A",
641 source_range: [217; 217), 641 source_range: 217..217,
642 delete: [217; 217), 642 delete: 217..217,
643 insert: "A", 643 insert: "A",
644 kind: Const, 644 kind: Const,
645 }, 645 },
646 CompletionItem { 646 CompletionItem {
647 label: "b", 647 label: "b",
648 source_range: [217; 217), 648 source_range: 217..217,
649 delete: [217; 217), 649 delete: 217..217,
650 insert: "b", 650 insert: "b",
651 kind: Module, 651 kind: Module,
652 }, 652 },
@@ -671,8 +671,8 @@ mod tests {
671 [ 671 [
672 CompletionItem { 672 CompletionItem {
673 label: "the_field", 673 label: "the_field",
674 source_range: [156; 157), 674 source_range: 156..157,
675 delete: [156; 157), 675 delete: 156..157,
676 insert: "the_field", 676 insert: "the_field",
677 kind: Field, 677 kind: Field,
678 detail: "u32", 678 detail: "u32",
@@ -698,8 +698,8 @@ mod tests {
698 [ 698 [
699 CompletionItem { 699 CompletionItem {
700 label: "the_field", 700 label: "the_field",
701 source_range: [156; 157), 701 source_range: 156..157,
702 delete: [156; 157), 702 delete: 156..157,
703 insert: "the_field", 703 insert: "the_field",
704 kind: Field, 704 kind: Field,
705 detail: "u32", 705 detail: "u32",
@@ -726,8 +726,8 @@ mod tests {
726 [ 726 [
727 CompletionItem { 727 CompletionItem {
728 label: "the_field", 728 label: "the_field",
729 source_range: [156; 156), 729 source_range: 156..156,
730 delete: [156; 156), 730 delete: 156..156,
731 insert: "the_field", 731 insert: "the_field",
732 kind: Field, 732 kind: Field,
733 detail: "u32", 733 detail: "u32",
@@ -753,8 +753,8 @@ mod tests {
753 [ 753 [
754 CompletionItem { 754 CompletionItem {
755 label: "the_field", 755 label: "the_field",
756 source_range: [162; 163), 756 source_range: 162..163,
757 delete: [162; 163), 757 delete: 162..163,
758 insert: "the_field", 758 insert: "the_field",
759 kind: Field, 759 kind: Field,
760 detail: "u32", 760 detail: "u32",
@@ -790,8 +790,8 @@ mod tests {
790 [ 790 [
791 CompletionItem { 791 CompletionItem {
792 label: "the_field", 792 label: "the_field",
793 source_range: [552; 552), 793 source_range: 552..552,
794 delete: [552; 552), 794 delete: 552..552,
795 insert: "the_field", 795 insert: "the_field",
796 kind: Field, 796 kind: Field,
797 detail: "u32", 797 detail: "u32",
@@ -820,8 +820,8 @@ mod tests {
820 [ 820 [
821 CompletionItem { 821 CompletionItem {
822 label: "the_method()", 822 label: "the_method()",
823 source_range: [201; 201), 823 source_range: 201..201,
824 delete: [201; 201), 824 delete: 201..201,
825 insert: "the_method()$0", 825 insert: "the_method()$0",
826 kind: Method, 826 kind: Method,
827 lookup: "the_method", 827 lookup: "the_method",
diff --git a/crates/ra_ide/src/completion/complete_fn_param.rs b/crates/ra_ide/src/completion/complete_fn_param.rs
index f84b559fc..a661932a3 100644
--- a/crates/ra_ide/src/completion/complete_fn_param.rs
+++ b/crates/ra_ide/src/completion/complete_fn_param.rs
@@ -75,8 +75,8 @@ mod tests {
75 [ 75 [
76 CompletionItem { 76 CompletionItem {
77 label: "file_id: FileId", 77 label: "file_id: FileId",
78 source_range: [110; 114), 78 source_range: 110..114,
79 delete: [110; 114), 79 delete: 110..114,
80 insert: "file_id: FileId", 80 insert: "file_id: FileId",
81 lookup: "file_id", 81 lookup: "file_id",
82 }, 82 },
@@ -99,8 +99,8 @@ mod tests {
99 [ 99 [
100 CompletionItem { 100 CompletionItem {
101 label: "file_id: FileId", 101 label: "file_id: FileId",
102 source_range: [110; 114), 102 source_range: 110..114,
103 delete: [110; 114), 103 delete: 110..114,
104 insert: "file_id: FileId", 104 insert: "file_id: FileId",
105 lookup: "file_id", 105 lookup: "file_id",
106 }, 106 },
@@ -126,8 +126,8 @@ mod tests {
126 [ 126 [
127 CompletionItem { 127 CompletionItem {
128 label: "file_id: FileId", 128 label: "file_id: FileId",
129 source_range: [289; 293), 129 source_range: 289..293,
130 delete: [289; 293), 130 delete: 289..293,
131 insert: "file_id: FileId", 131 insert: "file_id: FileId",
132 lookup: "file_id", 132 lookup: "file_id",
133 }, 133 },
diff --git a/crates/ra_ide/src/completion/complete_keyword.rs b/crates/ra_ide/src/completion/complete_keyword.rs
index 306ce96dc..fd95bc410 100644
--- a/crates/ra_ide/src/completion/complete_keyword.rs
+++ b/crates/ra_ide/src/completion/complete_keyword.rs
@@ -140,22 +140,22 @@ mod tests {
140 [ 140 [
141 CompletionItem { 141 CompletionItem {
142 label: "crate", 142 label: "crate",
143 source_range: [21; 21), 143 source_range: 21..21,
144 delete: [21; 21), 144 delete: 21..21,
145 insert: "crate::", 145 insert: "crate::",
146 kind: Keyword, 146 kind: Keyword,
147 }, 147 },
148 CompletionItem { 148 CompletionItem {
149 label: "self", 149 label: "self",
150 source_range: [21; 21), 150 source_range: 21..21,
151 delete: [21; 21), 151 delete: 21..21,
152 insert: "self", 152 insert: "self",
153 kind: Keyword, 153 kind: Keyword,
154 }, 154 },
155 CompletionItem { 155 CompletionItem {
156 label: "super", 156 label: "super",
157 source_range: [21; 21), 157 source_range: 21..21,
158 delete: [21; 21), 158 delete: 21..21,
159 insert: "super::", 159 insert: "super::",
160 kind: Keyword, 160 kind: Keyword,
161 }, 161 },
@@ -173,15 +173,15 @@ mod tests {
173 [ 173 [
174 CompletionItem { 174 CompletionItem {
175 label: "self", 175 label: "self",
176 source_range: [24; 24), 176 source_range: 24..24,
177 delete: [24; 24), 177 delete: 24..24,
178 insert: "self", 178 insert: "self",
179 kind: Keyword, 179 kind: Keyword,
180 }, 180 },
181 CompletionItem { 181 CompletionItem {
182 label: "super", 182 label: "super",
183 source_range: [24; 24), 183 source_range: 24..24,
184 delete: [24; 24), 184 delete: 24..24,
185 insert: "super::", 185 insert: "super::",
186 kind: Keyword, 186 kind: Keyword,
187 }, 187 },
@@ -199,15 +199,15 @@ mod tests {
199 [ 199 [
200 CompletionItem { 200 CompletionItem {
201 label: "self", 201 label: "self",
202 source_range: [28; 28), 202 source_range: 28..28,
203 delete: [28; 28), 203 delete: 28..28,
204 insert: "self", 204 insert: "self",
205 kind: Keyword, 205 kind: Keyword,
206 }, 206 },
207 CompletionItem { 207 CompletionItem {
208 label: "super", 208 label: "super",
209 source_range: [28; 28), 209 source_range: 28..28,
210 delete: [28; 28), 210 delete: 28..28,
211 insert: "super::", 211 insert: "super::",
212 kind: Keyword, 212 kind: Keyword,
213 }, 213 },
@@ -230,36 +230,36 @@ mod tests {
230 [ 230 [
231 CompletionItem { 231 CompletionItem {
232 label: "if", 232 label: "if",
233 source_range: [49; 49), 233 source_range: 49..49,
234 delete: [49; 49), 234 delete: 49..49,
235 insert: "if $0 {}", 235 insert: "if $0 {}",
236 kind: Keyword, 236 kind: Keyword,
237 }, 237 },
238 CompletionItem { 238 CompletionItem {
239 label: "loop", 239 label: "loop",
240 source_range: [49; 49), 240 source_range: 49..49,
241 delete: [49; 49), 241 delete: 49..49,
242 insert: "loop {$0}", 242 insert: "loop {$0}",
243 kind: Keyword, 243 kind: Keyword,
244 }, 244 },
245 CompletionItem { 245 CompletionItem {
246 label: "match", 246 label: "match",
247 source_range: [49; 49), 247 source_range: 49..49,
248 delete: [49; 49), 248 delete: 49..49,
249 insert: "match $0 {}", 249 insert: "match $0 {}",
250 kind: Keyword, 250 kind: Keyword,
251 }, 251 },
252 CompletionItem { 252 CompletionItem {
253 label: "return", 253 label: "return",
254 source_range: [49; 49), 254 source_range: 49..49,
255 delete: [49; 49), 255 delete: 49..49,
256 insert: "return;", 256 insert: "return;",
257 kind: Keyword, 257 kind: Keyword,
258 }, 258 },
259 CompletionItem { 259 CompletionItem {
260 label: "while", 260 label: "while",
261 source_range: [49; 49), 261 source_range: 49..49,
262 delete: [49; 49), 262 delete: 49..49,
263 insert: "while $0 {}", 263 insert: "while $0 {}",
264 kind: Keyword, 264 kind: Keyword,
265 }, 265 },
@@ -284,50 +284,50 @@ mod tests {
284 [ 284 [
285 CompletionItem { 285 CompletionItem {
286 label: "else", 286 label: "else",
287 source_range: [108; 108), 287 source_range: 108..108,
288 delete: [108; 108), 288 delete: 108..108,
289 insert: "else {$0}", 289 insert: "else {$0}",
290 kind: Keyword, 290 kind: Keyword,
291 }, 291 },
292 CompletionItem { 292 CompletionItem {
293 label: "else if", 293 label: "else if",
294 source_range: [108; 108), 294 source_range: 108..108,
295 delete: [108; 108), 295 delete: 108..108,
296 insert: "else if $0 {}", 296 insert: "else if $0 {}",
297 kind: Keyword, 297 kind: Keyword,
298 }, 298 },
299 CompletionItem { 299 CompletionItem {
300 label: "if", 300 label: "if",
301 source_range: [108; 108), 301 source_range: 108..108,
302 delete: [108; 108), 302 delete: 108..108,
303 insert: "if $0 {}", 303 insert: "if $0 {}",
304 kind: Keyword, 304 kind: Keyword,
305 }, 305 },
306 CompletionItem { 306 CompletionItem {
307 label: "loop", 307 label: "loop",
308 source_range: [108; 108), 308 source_range: 108..108,
309 delete: [108; 108), 309 delete: 108..108,
310 insert: "loop {$0}", 310 insert: "loop {$0}",
311 kind: Keyword, 311 kind: Keyword,
312 }, 312 },
313 CompletionItem { 313 CompletionItem {
314 label: "match", 314 label: "match",
315 source_range: [108; 108), 315 source_range: 108..108,
316 delete: [108; 108), 316 delete: 108..108,
317 insert: "match $0 {}", 317 insert: "match $0 {}",
318 kind: Keyword, 318 kind: Keyword,
319 }, 319 },
320 CompletionItem { 320 CompletionItem {
321 label: "return", 321 label: "return",
322 source_range: [108; 108), 322 source_range: 108..108,
323 delete: [108; 108), 323 delete: 108..108,
324 insert: "return;", 324 insert: "return;",
325 kind: Keyword, 325 kind: Keyword,
326 }, 326 },
327 CompletionItem { 327 CompletionItem {
328 label: "while", 328 label: "while",
329 source_range: [108; 108), 329 source_range: 108..108,
330 delete: [108; 108), 330 delete: 108..108,
331 insert: "while $0 {}", 331 insert: "while $0 {}",
332 kind: Keyword, 332 kind: Keyword,
333 }, 333 },
@@ -351,36 +351,36 @@ mod tests {
351 [ 351 [
352 CompletionItem { 352 CompletionItem {
353 label: "if", 353 label: "if",
354 source_range: [56; 56), 354 source_range: 56..56,
355 delete: [56; 56), 355 delete: 56..56,
356 insert: "if $0 {}", 356 insert: "if $0 {}",
357 kind: Keyword, 357 kind: Keyword,
358 }, 358 },
359 CompletionItem { 359 CompletionItem {
360 label: "loop", 360 label: "loop",
361 source_range: [56; 56), 361 source_range: 56..56,
362 delete: [56; 56), 362 delete: 56..56,
363 insert: "loop {$0}", 363 insert: "loop {$0}",
364 kind: Keyword, 364 kind: Keyword,
365 }, 365 },
366 CompletionItem { 366 CompletionItem {
367 label: "match", 367 label: "match",
368 source_range: [56; 56), 368 source_range: 56..56,
369 delete: [56; 56), 369 delete: 56..56,
370 insert: "match $0 {}", 370 insert: "match $0 {}",
371 kind: Keyword, 371 kind: Keyword,
372 }, 372 },
373 CompletionItem { 373 CompletionItem {
374 label: "return", 374 label: "return",
375 source_range: [56; 56), 375 source_range: 56..56,
376 delete: [56; 56), 376 delete: 56..56,
377 insert: "return $0;", 377 insert: "return $0;",
378 kind: Keyword, 378 kind: Keyword,
379 }, 379 },
380 CompletionItem { 380 CompletionItem {
381 label: "while", 381 label: "while",
382 source_range: [56; 56), 382 source_range: 56..56,
383 delete: [56; 56), 383 delete: 56..56,
384 insert: "while $0 {}", 384 insert: "while $0 {}",
385 kind: Keyword, 385 kind: Keyword,
386 }, 386 },
@@ -400,36 +400,36 @@ mod tests {
400 [ 400 [
401 CompletionItem { 401 CompletionItem {
402 label: "if", 402 label: "if",
403 source_range: [49; 49), 403 source_range: 49..49,
404 delete: [49; 49), 404 delete: 49..49,
405 insert: "if $0 {}", 405 insert: "if $0 {}",
406 kind: Keyword, 406 kind: Keyword,
407 }, 407 },
408 CompletionItem { 408 CompletionItem {
409 label: "loop", 409 label: "loop",
410 source_range: [49; 49), 410 source_range: 49..49,
411 delete: [49; 49), 411 delete: 49..49,
412 insert: "loop {$0}", 412 insert: "loop {$0}",
413 kind: Keyword, 413 kind: Keyword,
414 }, 414 },
415 CompletionItem { 415 CompletionItem {
416 label: "match", 416 label: "match",
417 source_range: [49; 49), 417 source_range: 49..49,
418 delete: [49; 49), 418 delete: 49..49,
419 insert: "match $0 {}", 419 insert: "match $0 {}",
420 kind: Keyword, 420 kind: Keyword,
421 }, 421 },
422 CompletionItem { 422 CompletionItem {
423 label: "return", 423 label: "return",
424 source_range: [49; 49), 424 source_range: 49..49,
425 delete: [49; 49), 425 delete: 49..49,
426 insert: "return;", 426 insert: "return;",
427 kind: Keyword, 427 kind: Keyword,
428 }, 428 },
429 CompletionItem { 429 CompletionItem {
430 label: "while", 430 label: "while",
431 source_range: [49; 49), 431 source_range: 49..49,
432 delete: [49; 49), 432 delete: 49..49,
433 insert: "while $0 {}", 433 insert: "while $0 {}",
434 kind: Keyword, 434 kind: Keyword,
435 }, 435 },
@@ -454,36 +454,36 @@ mod tests {
454 [ 454 [
455 CompletionItem { 455 CompletionItem {
456 label: "if", 456 label: "if",
457 source_range: [97; 97), 457 source_range: 97..97,
458 delete: [97; 97), 458 delete: 97..97,
459 insert: "if $0 {}", 459 insert: "if $0 {}",
460 kind: Keyword, 460 kind: Keyword,
461 }, 461 },
462 CompletionItem { 462 CompletionItem {
463 label: "loop", 463 label: "loop",
464 source_range: [97; 97), 464 source_range: 97..97,
465 delete: [97; 97), 465 delete: 97..97,
466 insert: "loop {$0}", 466 insert: "loop {$0}",
467 kind: Keyword, 467 kind: Keyword,
468 }, 468 },
469 CompletionItem { 469 CompletionItem {
470 label: "match", 470 label: "match",
471 source_range: [97; 97), 471 source_range: 97..97,
472 delete: [97; 97), 472 delete: 97..97,
473 insert: "match $0 {}", 473 insert: "match $0 {}",
474 kind: Keyword, 474 kind: Keyword,
475 }, 475 },
476 CompletionItem { 476 CompletionItem {
477 label: "return", 477 label: "return",
478 source_range: [97; 97), 478 source_range: 97..97,
479 delete: [97; 97), 479 delete: 97..97,
480 insert: "return $0", 480 insert: "return $0",
481 kind: Keyword, 481 kind: Keyword,
482 }, 482 },
483 CompletionItem { 483 CompletionItem {
484 label: "while", 484 label: "while",
485 source_range: [97; 97), 485 source_range: 97..97,
486 delete: [97; 97), 486 delete: 97..97,
487 insert: "while $0 {}", 487 insert: "while $0 {}",
488 kind: Keyword, 488 kind: Keyword,
489 }, 489 },
@@ -508,36 +508,36 @@ mod tests {
508 [ 508 [
509 CompletionItem { 509 CompletionItem {
510 label: "if", 510 label: "if",
511 source_range: [95; 95), 511 source_range: 95..95,
512 delete: [95; 95), 512 delete: 95..95,
513 insert: "if $0 {}", 513 insert: "if $0 {}",
514 kind: Keyword, 514 kind: Keyword,
515 }, 515 },
516 CompletionItem { 516 CompletionItem {
517 label: "loop", 517 label: "loop",
518 source_range: [95; 95), 518 source_range: 95..95,
519 delete: [95; 95), 519 delete: 95..95,
520 insert: "loop {$0}", 520 insert: "loop {$0}",
521 kind: Keyword, 521 kind: Keyword,
522 }, 522 },
523 CompletionItem { 523 CompletionItem {
524 label: "match", 524 label: "match",
525 source_range: [95; 95), 525 source_range: 95..95,
526 delete: [95; 95), 526 delete: 95..95,
527 insert: "match $0 {}", 527 insert: "match $0 {}",
528 kind: Keyword, 528 kind: Keyword,
529 }, 529 },
530 CompletionItem { 530 CompletionItem {
531 label: "return", 531 label: "return",
532 source_range: [95; 95), 532 source_range: 95..95,
533 delete: [95; 95), 533 delete: 95..95,
534 insert: "return $0;", 534 insert: "return $0;",
535 kind: Keyword, 535 kind: Keyword,
536 }, 536 },
537 CompletionItem { 537 CompletionItem {
538 label: "while", 538 label: "while",
539 source_range: [95; 95), 539 source_range: 95..95,
540 delete: [95; 95), 540 delete: 95..95,
541 insert: "while $0 {}", 541 insert: "while $0 {}",
542 kind: Keyword, 542 kind: Keyword,
543 }, 543 },
@@ -560,36 +560,36 @@ mod tests {
560 [ 560 [
561 CompletionItem { 561 CompletionItem {
562 label: "if", 562 label: "if",
563 source_range: [95; 95), 563 source_range: 95..95,
564 delete: [95; 95), 564 delete: 95..95,
565 insert: "if $0 {}", 565 insert: "if $0 {}",
566 kind: Keyword, 566 kind: Keyword,
567 }, 567 },
568 CompletionItem { 568 CompletionItem {
569 label: "loop", 569 label: "loop",
570 source_range: [95; 95), 570 source_range: 95..95,
571 delete: [95; 95), 571 delete: 95..95,
572 insert: "loop {$0}", 572 insert: "loop {$0}",
573 kind: Keyword, 573 kind: Keyword,
574 }, 574 },
575 CompletionItem { 575 CompletionItem {
576 label: "match", 576 label: "match",
577 source_range: [95; 95), 577 source_range: 95..95,
578 delete: [95; 95), 578 delete: 95..95,
579 insert: "match $0 {}", 579 insert: "match $0 {}",
580 kind: Keyword, 580 kind: Keyword,
581 }, 581 },
582 CompletionItem { 582 CompletionItem {
583 label: "return", 583 label: "return",
584 source_range: [95; 95), 584 source_range: 95..95,
585 delete: [95; 95), 585 delete: 95..95,
586 insert: "return $0;", 586 insert: "return $0;",
587 kind: Keyword, 587 kind: Keyword,
588 }, 588 },
589 CompletionItem { 589 CompletionItem {
590 label: "while", 590 label: "while",
591 source_range: [95; 95), 591 source_range: 95..95,
592 delete: [95; 95), 592 delete: 95..95,
593 insert: "while $0 {}", 593 insert: "while $0 {}",
594 kind: Keyword, 594 kind: Keyword,
595 }, 595 },
@@ -612,50 +612,50 @@ mod tests {
612 [ 612 [
613 CompletionItem { 613 CompletionItem {
614 label: "break", 614 label: "break",
615 source_range: [63; 63), 615 source_range: 63..63,
616 delete: [63; 63), 616 delete: 63..63,
617 insert: "break;", 617 insert: "break;",
618 kind: Keyword, 618 kind: Keyword,
619 }, 619 },
620 CompletionItem { 620 CompletionItem {
621 label: "continue", 621 label: "continue",
622 source_range: [63; 63), 622 source_range: 63..63,
623 delete: [63; 63), 623 delete: 63..63,
624 insert: "continue;", 624 insert: "continue;",
625 kind: Keyword, 625 kind: Keyword,
626 }, 626 },
627 CompletionItem { 627 CompletionItem {
628 label: "if", 628 label: "if",
629 source_range: [63; 63), 629 source_range: 63..63,
630 delete: [63; 63), 630 delete: 63..63,
631 insert: "if $0 {}", 631 insert: "if $0 {}",
632 kind: Keyword, 632 kind: Keyword,
633 }, 633 },
634 CompletionItem { 634 CompletionItem {
635 label: "loop", 635 label: "loop",
636 source_range: [63; 63), 636 source_range: 63..63,
637 delete: [63; 63), 637 delete: 63..63,
638 insert: "loop {$0}", 638 insert: "loop {$0}",
639 kind: Keyword, 639 kind: Keyword,
640 }, 640 },
641 CompletionItem { 641 CompletionItem {
642 label: "match", 642 label: "match",
643 source_range: [63; 63), 643 source_range: 63..63,
644 delete: [63; 63), 644 delete: 63..63,
645 insert: "match $0 {}", 645 insert: "match $0 {}",
646 kind: Keyword, 646 kind: Keyword,
647 }, 647 },
648 CompletionItem { 648 CompletionItem {
649 label: "return", 649 label: "return",
650 source_range: [63; 63), 650 source_range: 63..63,
651 delete: [63; 63), 651 delete: 63..63,
652 insert: "return $0;", 652 insert: "return $0;",
653 kind: Keyword, 653 kind: Keyword,
654 }, 654 },
655 CompletionItem { 655 CompletionItem {
656 label: "while", 656 label: "while",
657 source_range: [63; 63), 657 source_range: 63..63,
658 delete: [63; 63), 658 delete: 63..63,
659 insert: "while $0 {}", 659 insert: "while $0 {}",
660 kind: Keyword, 660 kind: Keyword,
661 }, 661 },
@@ -676,36 +676,36 @@ mod tests {
676 [ 676 [
677 CompletionItem { 677 CompletionItem {
678 label: "if", 678 label: "if",
679 source_range: [68; 68), 679 source_range: 68..68,
680 delete: [68; 68), 680 delete: 68..68,
681 insert: "if $0 {}", 681 insert: "if $0 {}",
682 kind: Keyword, 682 kind: Keyword,
683 }, 683 },
684 CompletionItem { 684 CompletionItem {
685 label: "loop", 685 label: "loop",
686 source_range: [68; 68), 686 source_range: 68..68,
687 delete: [68; 68), 687 delete: 68..68,
688 insert: "loop {$0}", 688 insert: "loop {$0}",
689 kind: Keyword, 689 kind: Keyword,
690 }, 690 },
691 CompletionItem { 691 CompletionItem {
692 label: "match", 692 label: "match",
693 source_range: [68; 68), 693 source_range: 68..68,
694 delete: [68; 68), 694 delete: 68..68,
695 insert: "match $0 {}", 695 insert: "match $0 {}",
696 kind: Keyword, 696 kind: Keyword,
697 }, 697 },
698 CompletionItem { 698 CompletionItem {
699 label: "return", 699 label: "return",
700 source_range: [68; 68), 700 source_range: 68..68,
701 delete: [68; 68), 701 delete: 68..68,
702 insert: "return $0;", 702 insert: "return $0;",
703 kind: Keyword, 703 kind: Keyword,
704 }, 704 },
705 CompletionItem { 705 CompletionItem {
706 label: "while", 706 label: "while",
707 source_range: [68; 68), 707 source_range: 68..68,
708 delete: [68; 68), 708 delete: 68..68,
709 insert: "while $0 {}", 709 insert: "while $0 {}",
710 kind: Keyword, 710 kind: Keyword,
711 }, 711 },
@@ -732,50 +732,50 @@ mod tests {
732 [ 732 [
733 CompletionItem { 733 CompletionItem {
734 label: "break", 734 label: "break",
735 source_range: [122; 124), 735 source_range: 122..124,
736 delete: [122; 124), 736 delete: 122..124,
737 insert: "break", 737 insert: "break",
738 kind: Keyword, 738 kind: Keyword,
739 }, 739 },
740 CompletionItem { 740 CompletionItem {
741 label: "continue", 741 label: "continue",
742 source_range: [122; 124), 742 source_range: 122..124,
743 delete: [122; 124), 743 delete: 122..124,
744 insert: "continue", 744 insert: "continue",
745 kind: Keyword, 745 kind: Keyword,
746 }, 746 },
747 CompletionItem { 747 CompletionItem {
748 label: "if", 748 label: "if",
749 source_range: [122; 124), 749 source_range: 122..124,
750 delete: [122; 124), 750 delete: 122..124,
751 insert: "if $0 {}", 751 insert: "if $0 {}",
752 kind: Keyword, 752 kind: Keyword,
753 }, 753 },
754 CompletionItem { 754 CompletionItem {
755 label: "loop", 755 label: "loop",
756 source_range: [122; 124), 756 source_range: 122..124,
757 delete: [122; 124), 757 delete: 122..124,
758 insert: "loop {$0}", 758 insert: "loop {$0}",
759 kind: Keyword, 759 kind: Keyword,
760 }, 760 },
761 CompletionItem { 761 CompletionItem {
762 label: "match", 762 label: "match",
763 source_range: [122; 124), 763 source_range: 122..124,
764 delete: [122; 124), 764 delete: 122..124,
765 insert: "match $0 {}", 765 insert: "match $0 {}",
766 kind: Keyword, 766 kind: Keyword,
767 }, 767 },
768 CompletionItem { 768 CompletionItem {
769 label: "return", 769 label: "return",
770 source_range: [122; 124), 770 source_range: 122..124,
771 delete: [122; 124), 771 delete: 122..124,
772 insert: "return", 772 insert: "return",
773 kind: Keyword, 773 kind: Keyword,
774 }, 774 },
775 CompletionItem { 775 CompletionItem {
776 label: "while", 776 label: "while",
777 source_range: [122; 124), 777 source_range: 122..124,
778 delete: [122; 124), 778 delete: 122..124,
779 insert: "while $0 {}", 779 insert: "while $0 {}",
780 kind: Keyword, 780 kind: Keyword,
781 }, 781 },
diff --git a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs b/crates/ra_ide/src/completion/complete_macro_in_item_position.rs
index 6000106d0..d9bb5fd25 100644
--- a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs
+++ b/crates/ra_ide/src/completion/complete_macro_in_item_position.rs
@@ -42,8 +42,8 @@ mod tests {
42 [ 42 [
43 CompletionItem { 43 CompletionItem {
44 label: "foo!(…)", 44 label: "foo!(…)",
45 source_range: [46; 46), 45 source_range: 46..46,
46 delete: [46; 46), 46 delete: 46..46,
47 insert: "foo!($0)", 47 insert: "foo!($0)",
48 kind: Macro, 48 kind: Macro,
49 detail: "macro_rules! foo", 49 detail: "macro_rules! foo",
@@ -82,8 +82,8 @@ mod tests {
82 [ 82 [
83 CompletionItem { 83 CompletionItem {
84 label: "vec![…]", 84 label: "vec![…]",
85 source_range: [280; 280), 85 source_range: 280..280,
86 delete: [280; 280), 86 delete: 280..280,
87 insert: "vec![$0]", 87 insert: "vec![$0]",
88 kind: Macro, 88 kind: Macro,
89 detail: "macro_rules! vec", 89 detail: "macro_rules! vec",
@@ -119,8 +119,8 @@ mod tests {
119 [ 119 [
120 CompletionItem { 120 CompletionItem {
121 label: "foo! {…}", 121 label: "foo! {…}",
122 source_range: [163; 163), 122 source_range: 163..163,
123 delete: [163; 163), 123 delete: 163..163,
124 insert: "foo! {$0}", 124 insert: "foo! {$0}",
125 kind: Macro, 125 kind: Macro,
126 detail: "macro_rules! foo", 126 detail: "macro_rules! foo",
@@ -130,8 +130,8 @@ mod tests {
130 }, 130 },
131 CompletionItem { 131 CompletionItem {
132 label: "main()", 132 label: "main()",
133 source_range: [163; 163), 133 source_range: 163..163,
134 delete: [163; 163), 134 delete: 163..163,
135 insert: "main()$0", 135 insert: "main()$0",
136 kind: Function, 136 kind: Function,
137 lookup: "main", 137 lookup: "main",
diff --git a/crates/ra_ide/src/completion/complete_pattern.rs b/crates/ra_ide/src/completion/complete_pattern.rs
index 218829b10..fdd9e928b 100644
--- a/crates/ra_ide/src/completion/complete_pattern.rs
+++ b/crates/ra_ide/src/completion/complete_pattern.rs
@@ -63,37 +63,37 @@ mod tests {
63 [ 63 [
64 CompletionItem { 64 CompletionItem {
65 label: "Bar", 65 label: "Bar",
66 source_range: [246; 246), 66 source_range: 246..246,
67 delete: [246; 246), 67 delete: 246..246,
68 insert: "Bar", 68 insert: "Bar",
69 kind: Struct, 69 kind: Struct,
70 }, 70 },
71 CompletionItem { 71 CompletionItem {
72 label: "E", 72 label: "E",
73 source_range: [246; 246), 73 source_range: 246..246,
74 delete: [246; 246), 74 delete: 246..246,
75 insert: "E", 75 insert: "E",
76 kind: Enum, 76 kind: Enum,
77 }, 77 },
78 CompletionItem { 78 CompletionItem {
79 label: "X", 79 label: "X",
80 source_range: [246; 246), 80 source_range: 246..246,
81 delete: [246; 246), 81 delete: 246..246,
82 insert: "X", 82 insert: "X",
83 kind: EnumVariant, 83 kind: EnumVariant,
84 detail: "()", 84 detail: "()",
85 }, 85 },
86 CompletionItem { 86 CompletionItem {
87 label: "Z", 87 label: "Z",
88 source_range: [246; 246), 88 source_range: 246..246,
89 delete: [246; 246), 89 delete: 246..246,
90 insert: "Z", 90 insert: "Z",
91 kind: Const, 91 kind: Const,
92 }, 92 },
93 CompletionItem { 93 CompletionItem {
94 label: "m", 94 label: "m",
95 source_range: [246; 246), 95 source_range: 246..246,
96 delete: [246; 246), 96 delete: 246..246,
97 insert: "m", 97 insert: "m",
98 kind: Module, 98 kind: Module,
99 }, 99 },
@@ -119,15 +119,15 @@ mod tests {
119 [ 119 [
120 CompletionItem { 120 CompletionItem {
121 label: "E", 121 label: "E",
122 source_range: [151; 151), 122 source_range: 151..151,
123 delete: [151; 151), 123 delete: 151..151,
124 insert: "E", 124 insert: "E",
125 kind: Enum, 125 kind: Enum,
126 }, 126 },
127 CompletionItem { 127 CompletionItem {
128 label: "m!(…)", 128 label: "m!(…)",
129 source_range: [151; 151), 129 source_range: 151..151,
130 delete: [151; 151), 130 delete: 151..151,
131 insert: "m!($0)", 131 insert: "m!($0)",
132 kind: Macro, 132 kind: Macro,
133 detail: "macro_rules! m", 133 detail: "macro_rules! m",
diff --git a/crates/ra_ide/src/completion/complete_postfix.rs b/crates/ra_ide/src/completion/complete_postfix.rs
index d6a37d720..6a0f0c72e 100644
--- a/crates/ra_ide/src/completion/complete_postfix.rs
+++ b/crates/ra_ide/src/completion/complete_postfix.rs
@@ -176,57 +176,57 @@ mod tests {
176 [ 176 [
177 CompletionItem { 177 CompletionItem {
178 label: "box", 178 label: "box",
179 source_range: [89; 89), 179 source_range: 89..89,
180 delete: [85; 89), 180 delete: 85..89,
181 insert: "Box::new(bar)", 181 insert: "Box::new(bar)",
182 detail: "Box::new(expr)", 182 detail: "Box::new(expr)",
183 }, 183 },
184 CompletionItem { 184 CompletionItem {
185 label: "dbg", 185 label: "dbg",
186 source_range: [89; 89), 186 source_range: 89..89,
187 delete: [85; 89), 187 delete: 85..89,
188 insert: "dbg!(bar)", 188 insert: "dbg!(bar)",
189 detail: "dbg!(expr)", 189 detail: "dbg!(expr)",
190 }, 190 },
191 CompletionItem { 191 CompletionItem {
192 label: "if", 192 label: "if",
193 source_range: [89; 89), 193 source_range: 89..89,
194 delete: [85; 89), 194 delete: 85..89,
195 insert: "if bar {$0}", 195 insert: "if bar {$0}",
196 detail: "if expr {}", 196 detail: "if expr {}",
197 }, 197 },
198 CompletionItem { 198 CompletionItem {
199 label: "match", 199 label: "match",
200 source_range: [89; 89), 200 source_range: 89..89,
201 delete: [85; 89), 201 delete: 85..89,
202 insert: "match bar {\n ${1:_} => {$0\\},\n}", 202 insert: "match bar {\n ${1:_} => {$0\\},\n}",
203 detail: "match expr {}", 203 detail: "match expr {}",
204 }, 204 },
205 CompletionItem { 205 CompletionItem {
206 label: "not", 206 label: "not",
207 source_range: [89; 89), 207 source_range: 89..89,
208 delete: [85; 89), 208 delete: 85..89,
209 insert: "!bar", 209 insert: "!bar",
210 detail: "!expr", 210 detail: "!expr",
211 }, 211 },
212 CompletionItem { 212 CompletionItem {
213 label: "ref", 213 label: "ref",
214 source_range: [89; 89), 214 source_range: 89..89,
215 delete: [85; 89), 215 delete: 85..89,
216 insert: "&bar", 216 insert: "&bar",
217 detail: "&expr", 217 detail: "&expr",
218 }, 218 },
219 CompletionItem { 219 CompletionItem {
220 label: "refm", 220 label: "refm",
221 source_range: [89; 89), 221 source_range: 89..89,
222 delete: [85; 89), 222 delete: 85..89,
223 insert: "&mut bar", 223 insert: "&mut bar",
224 detail: "&mut expr", 224 detail: "&mut expr",
225 }, 225 },
226 CompletionItem { 226 CompletionItem {
227 label: "while", 227 label: "while",
228 source_range: [89; 89), 228 source_range: 89..89,
229 delete: [85; 89), 229 delete: 85..89,
230 insert: "while bar {\n$0\n}", 230 insert: "while bar {\n$0\n}",
231 detail: "while expr {}", 231 detail: "while expr {}",
232 }, 232 },
@@ -250,43 +250,43 @@ mod tests {
250 [ 250 [
251 CompletionItem { 251 CompletionItem {
252 label: "box", 252 label: "box",
253 source_range: [91; 91), 253 source_range: 91..91,
254 delete: [87; 91), 254 delete: 87..91,
255 insert: "Box::new(bar)", 255 insert: "Box::new(bar)",
256 detail: "Box::new(expr)", 256 detail: "Box::new(expr)",
257 }, 257 },
258 CompletionItem { 258 CompletionItem {
259 label: "dbg", 259 label: "dbg",
260 source_range: [91; 91), 260 source_range: 91..91,
261 delete: [87; 91), 261 delete: 87..91,
262 insert: "dbg!(bar)", 262 insert: "dbg!(bar)",
263 detail: "dbg!(expr)", 263 detail: "dbg!(expr)",
264 }, 264 },
265 CompletionItem { 265 CompletionItem {
266 label: "match", 266 label: "match",
267 source_range: [91; 91), 267 source_range: 91..91,
268 delete: [87; 91), 268 delete: 87..91,
269 insert: "match bar {\n ${1:_} => {$0\\},\n}", 269 insert: "match bar {\n ${1:_} => {$0\\},\n}",
270 detail: "match expr {}", 270 detail: "match expr {}",
271 }, 271 },
272 CompletionItem { 272 CompletionItem {
273 label: "not", 273 label: "not",
274 source_range: [91; 91), 274 source_range: 91..91,
275 delete: [87; 91), 275 delete: 87..91,
276 insert: "!bar", 276 insert: "!bar",
277 detail: "!expr", 277 detail: "!expr",
278 }, 278 },
279 CompletionItem { 279 CompletionItem {
280 label: "ref", 280 label: "ref",
281 source_range: [91; 91), 281 source_range: 91..91,
282 delete: [87; 91), 282 delete: 87..91,
283 insert: "&bar", 283 insert: "&bar",
284 detail: "&expr", 284 detail: "&expr",
285 }, 285 },
286 CompletionItem { 286 CompletionItem {
287 label: "refm", 287 label: "refm",
288 source_range: [91; 91), 288 source_range: 91..91,
289 delete: [87; 91), 289 delete: 87..91,
290 insert: "&mut bar", 290 insert: "&mut bar",
291 detail: "&mut expr", 291 detail: "&mut expr",
292 }, 292 },
@@ -309,43 +309,43 @@ mod tests {
309 [ 309 [
310 CompletionItem { 310 CompletionItem {
311 label: "box", 311 label: "box",
312 source_range: [52; 52), 312 source_range: 52..52,
313 delete: [49; 52), 313 delete: 49..52,
314 insert: "Box::new(42)", 314 insert: "Box::new(42)",
315 detail: "Box::new(expr)", 315 detail: "Box::new(expr)",
316 }, 316 },
317 CompletionItem { 317 CompletionItem {
318 label: "dbg", 318 label: "dbg",
319 source_range: [52; 52), 319 source_range: 52..52,
320 delete: [49; 52), 320 delete: 49..52,
321 insert: "dbg!(42)", 321 insert: "dbg!(42)",
322 detail: "dbg!(expr)", 322 detail: "dbg!(expr)",
323 }, 323 },
324 CompletionItem { 324 CompletionItem {
325 label: "match", 325 label: "match",
326 source_range: [52; 52), 326 source_range: 52..52,
327 delete: [49; 52), 327 delete: 49..52,
328 insert: "match 42 {\n ${1:_} => {$0\\},\n}", 328 insert: "match 42 {\n ${1:_} => {$0\\},\n}",
329 detail: "match expr {}", 329 detail: "match expr {}",
330 }, 330 },
331 CompletionItem { 331 CompletionItem {
332 label: "not", 332 label: "not",
333 source_range: [52; 52), 333 source_range: 52..52,
334 delete: [49; 52), 334 delete: 49..52,
335 insert: "!42", 335 insert: "!42",
336 detail: "!expr", 336 detail: "!expr",
337 }, 337 },
338 CompletionItem { 338 CompletionItem {
339 label: "ref", 339 label: "ref",
340 source_range: [52; 52), 340 source_range: 52..52,
341 delete: [49; 52), 341 delete: 49..52,
342 insert: "&42", 342 insert: "&42",
343 detail: "&expr", 343 detail: "&expr",
344 }, 344 },
345 CompletionItem { 345 CompletionItem {
346 label: "refm", 346 label: "refm",
347 source_range: [52; 52), 347 source_range: 52..52,
348 delete: [49; 52), 348 delete: 49..52,
349 insert: "&mut 42", 349 insert: "&mut 42",
350 detail: "&mut expr", 350 detail: "&mut expr",
351 }, 351 },
@@ -370,43 +370,43 @@ mod tests {
370 [ 370 [
371 CompletionItem { 371 CompletionItem {
372 label: "box", 372 label: "box",
373 source_range: [149; 150), 373 source_range: 149..150,
374 delete: [145; 150), 374 delete: 145..150,
375 insert: "Box::new(bar)", 375 insert: "Box::new(bar)",
376 detail: "Box::new(expr)", 376 detail: "Box::new(expr)",
377 }, 377 },
378 CompletionItem { 378 CompletionItem {
379 label: "dbg", 379 label: "dbg",
380 source_range: [149; 150), 380 source_range: 149..150,
381 delete: [145; 150), 381 delete: 145..150,
382 insert: "dbg!(bar)", 382 insert: "dbg!(bar)",
383 detail: "dbg!(expr)", 383 detail: "dbg!(expr)",
384 }, 384 },
385 CompletionItem { 385 CompletionItem {
386 label: "match", 386 label: "match",
387 source_range: [149; 150), 387 source_range: 149..150,
388 delete: [145; 150), 388 delete: 145..150,
389 insert: "match bar {\n ${1:_} => {$0\\},\n}", 389 insert: "match bar {\n ${1:_} => {$0\\},\n}",
390 detail: "match expr {}", 390 detail: "match expr {}",
391 }, 391 },
392 CompletionItem { 392 CompletionItem {
393 label: "not", 393 label: "not",
394 source_range: [149; 150), 394 source_range: 149..150,
395 delete: [145; 150), 395 delete: 145..150,
396 insert: "!bar", 396 insert: "!bar",
397 detail: "!expr", 397 detail: "!expr",
398 }, 398 },
399 CompletionItem { 399 CompletionItem {
400 label: "ref", 400 label: "ref",
401 source_range: [149; 150), 401 source_range: 149..150,
402 delete: [145; 150), 402 delete: 145..150,
403 insert: "&bar", 403 insert: "&bar",
404 detail: "&expr", 404 detail: "&expr",
405 }, 405 },
406 CompletionItem { 406 CompletionItem {
407 label: "refm", 407 label: "refm",
408 source_range: [149; 150), 408 source_range: 149..150,
409 delete: [145; 150), 409 delete: 145..150,
410 insert: "&mut bar", 410 insert: "&mut bar",
411 detail: "&mut expr", 411 detail: "&mut expr",
412 }, 412 },
@@ -429,43 +429,43 @@ mod tests {
429 [ 429 [
430 CompletionItem { 430 CompletionItem {
431 label: "box", 431 label: "box",
432 source_range: [56; 56), 432 source_range: 56..56,
433 delete: [49; 56), 433 delete: 49..56,
434 insert: "Box::new(&&&&42)", 434 insert: "Box::new(&&&&42)",
435 detail: "Box::new(expr)", 435 detail: "Box::new(expr)",
436 }, 436 },
437 CompletionItem { 437 CompletionItem {
438 label: "dbg", 438 label: "dbg",
439 source_range: [56; 56), 439 source_range: 56..56,
440 delete: [49; 56), 440 delete: 49..56,
441 insert: "dbg!(&&&&42)", 441 insert: "dbg!(&&&&42)",
442 detail: "dbg!(expr)", 442 detail: "dbg!(expr)",
443 }, 443 },
444 CompletionItem { 444 CompletionItem {
445 label: "match", 445 label: "match",
446 source_range: [56; 56), 446 source_range: 56..56,
447 delete: [49; 56), 447 delete: 49..56,
448 insert: "match &&&&42 {\n ${1:_} => {$0\\},\n}", 448 insert: "match &&&&42 {\n ${1:_} => {$0\\},\n}",
449 detail: "match expr {}", 449 detail: "match expr {}",
450 }, 450 },
451 CompletionItem { 451 CompletionItem {
452 label: "not", 452 label: "not",
453 source_range: [56; 56), 453 source_range: 56..56,
454 delete: [53; 56), 454 delete: 53..56,
455 insert: "!42", 455 insert: "!42",
456 detail: "!expr", 456 detail: "!expr",
457 }, 457 },
458 CompletionItem { 458 CompletionItem {
459 label: "ref", 459 label: "ref",
460 source_range: [56; 56), 460 source_range: 56..56,
461 delete: [53; 56), 461 delete: 53..56,
462 insert: "&42", 462 insert: "&42",
463 detail: "&expr", 463 detail: "&expr",
464 }, 464 },
465 CompletionItem { 465 CompletionItem {
466 label: "refm", 466 label: "refm",
467 source_range: [56; 56), 467 source_range: 56..56,
468 delete: [53; 56), 468 delete: 53..56,
469 insert: "&mut 42", 469 insert: "&mut 42",
470 detail: "&mut expr", 470 detail: "&mut expr",
471 }, 471 },
diff --git a/crates/ra_ide/src/completion/complete_qualified_path.rs b/crates/ra_ide/src/completion/complete_qualified_path.rs
index 5a5139e14..dd10f74e6 100644
--- a/crates/ra_ide/src/completion/complete_qualified_path.rs
+++ b/crates/ra_ide/src/completion/complete_qualified_path.rs
@@ -162,8 +162,8 @@ mod tests {
162 [ 162 [
163 CompletionItem { 163 CompletionItem {
164 label: "my", 164 label: "my",
165 source_range: [27; 29), 165 source_range: 27..29,
166 delete: [27; 29), 166 delete: 27..29,
167 insert: "my", 167 insert: "my",
168 kind: Module, 168 kind: Module,
169 documentation: Documentation( 169 documentation: Documentation(
@@ -193,15 +193,15 @@ mod tests {
193 [ 193 [
194 CompletionItem { 194 CompletionItem {
195 label: "Foo", 195 label: "Foo",
196 source_range: [31; 31), 196 source_range: 31..31,
197 delete: [31; 31), 197 delete: 31..31,
198 insert: "Foo", 198 insert: "Foo",
199 kind: Struct, 199 kind: Struct,
200 }, 200 },
201 CompletionItem { 201 CompletionItem {
202 label: "PublicBar", 202 label: "PublicBar",
203 source_range: [31; 31), 203 source_range: 31..31,
204 delete: [31; 31), 204 delete: 31..31,
205 insert: "PublicBar", 205 insert: "PublicBar",
206 kind: Struct, 206 kind: Struct,
207 }, 207 },
@@ -226,8 +226,8 @@ mod tests {
226 [ 226 [
227 CompletionItem { 227 CompletionItem {
228 label: "Bar", 228 label: "Bar",
229 source_range: [30; 30), 229 source_range: 30..30,
230 delete: [30; 30), 230 delete: 30..30,
231 insert: "Bar", 231 insert: "Bar",
232 kind: Struct, 232 kind: Struct,
233 }, 233 },
@@ -252,15 +252,15 @@ mod tests {
252 [ 252 [
253 CompletionItem { 253 CompletionItem {
254 label: "Spam", 254 label: "Spam",
255 source_range: [11; 13), 255 source_range: 11..13,
256 delete: [11; 13), 256 delete: 11..13,
257 insert: "Spam", 257 insert: "Spam",
258 kind: Struct, 258 kind: Struct,
259 }, 259 },
260 CompletionItem { 260 CompletionItem {
261 label: "foo", 261 label: "foo",
262 source_range: [11; 13), 262 source_range: 11..13,
263 delete: [11; 13), 263 delete: 11..13,
264 insert: "foo", 264 insert: "foo",
265 kind: Module, 265 kind: Module,
266 }, 266 },
@@ -285,15 +285,15 @@ mod tests {
285 [ 285 [
286 CompletionItem { 286 CompletionItem {
287 label: "Spam", 287 label: "Spam",
288 source_range: [12; 14), 288 source_range: 12..14,
289 delete: [12; 14), 289 delete: 12..14,
290 insert: "Spam", 290 insert: "Spam",
291 kind: Struct, 291 kind: Struct,
292 }, 292 },
293 CompletionItem { 293 CompletionItem {
294 label: "foo", 294 label: "foo",
295 source_range: [12; 14), 295 source_range: 12..14,
296 delete: [12; 14), 296 delete: 12..14,
297 insert: "foo", 297 insert: "foo",
298 kind: Module, 298 kind: Module,
299 }, 299 },
@@ -322,8 +322,8 @@ mod tests {
322 [ 322 [
323 CompletionItem { 323 CompletionItem {
324 label: "Spam", 324 label: "Spam",
325 source_range: [23; 25), 325 source_range: 23..25,
326 delete: [23; 25), 326 delete: 23..25,
327 insert: "Spam", 327 insert: "Spam",
328 kind: Struct, 328 kind: Struct,
329 }, 329 },
@@ -352,8 +352,8 @@ mod tests {
352 [ 352 [
353 CompletionItem { 353 CompletionItem {
354 label: "Bar(…)", 354 label: "Bar(…)",
355 source_range: [116; 116), 355 source_range: 116..116,
356 delete: [116; 116), 356 delete: 116..116,
357 insert: "Bar($0)", 357 insert: "Bar($0)",
358 kind: EnumVariant, 358 kind: EnumVariant,
359 lookup: "Bar", 359 lookup: "Bar",
@@ -365,8 +365,8 @@ mod tests {
365 }, 365 },
366 CompletionItem { 366 CompletionItem {
367 label: "Foo", 367 label: "Foo",
368 source_range: [116; 116), 368 source_range: 116..116,
369 delete: [116; 116), 369 delete: 116..116,
370 insert: "Foo", 370 insert: "Foo",
371 kind: EnumVariant, 371 kind: EnumVariant,
372 detail: "()", 372 detail: "()",
@@ -402,8 +402,8 @@ mod tests {
402 [ 402 [
403 CompletionItem { 403 CompletionItem {
404 label: "Bar(…)", 404 label: "Bar(…)",
405 source_range: [180; 180), 405 source_range: 180..180,
406 delete: [180; 180), 406 delete: 180..180,
407 insert: "Bar($0)", 407 insert: "Bar($0)",
408 kind: EnumVariant, 408 kind: EnumVariant,
409 lookup: "Bar", 409 lookup: "Bar",
@@ -415,8 +415,8 @@ mod tests {
415 }, 415 },
416 CompletionItem { 416 CompletionItem {
417 label: "Foo", 417 label: "Foo",
418 source_range: [180; 180), 418 source_range: 180..180,
419 delete: [180; 180), 419 delete: 180..180,
420 insert: "Foo", 420 insert: "Foo",
421 kind: EnumVariant, 421 kind: EnumVariant,
422 detail: "()", 422 detail: "()",
@@ -426,8 +426,8 @@ mod tests {
426 }, 426 },
427 CompletionItem { 427 CompletionItem {
428 label: "S(…)", 428 label: "S(…)",
429 source_range: [180; 180), 429 source_range: 180..180,
430 delete: [180; 180), 430 delete: 180..180,
431 insert: "S($0)", 431 insert: "S($0)",
432 kind: EnumVariant, 432 kind: EnumVariant,
433 lookup: "S", 433 lookup: "S",
@@ -463,8 +463,8 @@ mod tests {
463 [ 463 [
464 CompletionItem { 464 CompletionItem {
465 label: "m()", 465 label: "m()",
466 source_range: [100; 100), 466 source_range: 100..100,
467 delete: [100; 100), 467 delete: 100..100,
468 insert: "m()$0", 468 insert: "m()$0",
469 kind: Function, 469 kind: Function,
470 lookup: "m", 470 lookup: "m",
@@ -499,8 +499,8 @@ mod tests {
499 [ 499 [
500 CompletionItem { 500 CompletionItem {
501 label: "m()", 501 label: "m()",
502 source_range: [105; 105), 502 source_range: 105..105,
503 delete: [105; 105), 503 delete: 105..105,
504 insert: "m()$0", 504 insert: "m()$0",
505 kind: Method, 505 kind: Method,
506 lookup: "m", 506 lookup: "m",
@@ -535,8 +535,8 @@ mod tests {
535 [ 535 [
536 CompletionItem { 536 CompletionItem {
537 label: "C", 537 label: "C",
538 source_range: [107; 107), 538 source_range: 107..107,
539 delete: [107; 107), 539 delete: 107..107,
540 insert: "C", 540 insert: "C",
541 kind: Const, 541 kind: Const,
542 detail: "const C: i32 = 42;", 542 detail: "const C: i32 = 42;",
@@ -570,8 +570,8 @@ mod tests {
570 [ 570 [
571 CompletionItem { 571 CompletionItem {
572 label: "T", 572 label: "T",
573 source_range: [101; 101), 573 source_range: 101..101,
574 delete: [101; 101), 574 delete: 101..101,
575 insert: "T", 575 insert: "T",
576 kind: TypeAlias, 576 kind: TypeAlias,
577 detail: "type T = i32;", 577 detail: "type T = i32;",
@@ -610,24 +610,24 @@ mod tests {
610 [ 610 [
611 CompletionItem { 611 CompletionItem {
612 label: "PUBLIC_CONST", 612 label: "PUBLIC_CONST",
613 source_range: [302; 302), 613 source_range: 302..302,
614 delete: [302; 302), 614 delete: 302..302,
615 insert: "PUBLIC_CONST", 615 insert: "PUBLIC_CONST",
616 kind: Const, 616 kind: Const,
617 detail: "pub(super) const PUBLIC_CONST: u32 = 1;", 617 detail: "pub(super) const PUBLIC_CONST: u32 = 1;",
618 }, 618 },
619 CompletionItem { 619 CompletionItem {
620 label: "PublicType", 620 label: "PublicType",
621 source_range: [302; 302), 621 source_range: 302..302,
622 delete: [302; 302), 622 delete: 302..302,
623 insert: "PublicType", 623 insert: "PublicType",
624 kind: TypeAlias, 624 kind: TypeAlias,
625 detail: "pub(super) type PublicType = u32;", 625 detail: "pub(super) type PublicType = u32;",
626 }, 626 },
627 CompletionItem { 627 CompletionItem {
628 label: "public_method()", 628 label: "public_method()",
629 source_range: [302; 302), 629 source_range: 302..302,
630 delete: [302; 302), 630 delete: 302..302,
631 insert: "public_method()$0", 631 insert: "public_method()$0",
632 kind: Function, 632 kind: Function,
633 lookup: "public_method", 633 lookup: "public_method",
@@ -659,8 +659,8 @@ mod tests {
659 [ 659 [
660 CompletionItem { 660 CompletionItem {
661 label: "m()", 661 label: "m()",
662 source_range: [100; 100), 662 source_range: 100..100,
663 delete: [100; 100), 663 delete: 100..100,
664 insert: "m()$0", 664 insert: "m()$0",
665 kind: Function, 665 kind: Function,
666 lookup: "m", 666 lookup: "m",
@@ -695,8 +695,8 @@ mod tests {
695 [ 695 [
696 CompletionItem { 696 CompletionItem {
697 label: "m()", 697 label: "m()",
698 source_range: [101; 101), 698 source_range: 101..101,
699 delete: [101; 101), 699 delete: 101..101,
700 insert: "m()$0", 700 insert: "m()$0",
701 kind: Function, 701 kind: Function,
702 lookup: "m", 702 lookup: "m",
@@ -728,8 +728,8 @@ mod tests {
728 [ 728 [
729 CompletionItem { 729 CompletionItem {
730 label: "bar", 730 label: "bar",
731 source_range: [9; 9), 731 source_range: 9..9,
732 delete: [9; 9), 732 delete: 9..9,
733 insert: "bar", 733 insert: "bar",
734 kind: Module, 734 kind: Module,
735 }, 735 },
@@ -756,8 +756,8 @@ mod tests {
756 [ 756 [
757 CompletionItem { 757 CompletionItem {
758 label: "m()", 758 label: "m()",
759 source_range: [73; 73), 759 source_range: 73..73,
760 delete: [73; 73), 760 delete: 73..73,
761 insert: "m()$0", 761 insert: "m()$0",
762 kind: Function, 762 kind: Function,
763 lookup: "m", 763 lookup: "m",
@@ -792,8 +792,8 @@ mod tests {
792 [ 792 [
793 CompletionItem { 793 CompletionItem {
794 label: "m()", 794 label: "m()",
795 source_range: [99; 99), 795 source_range: 99..99,
796 delete: [99; 99), 796 delete: 99..99,
797 insert: "m()$0", 797 insert: "m()$0",
798 kind: Function, 798 kind: Function,
799 lookup: "m", 799 lookup: "m",
@@ -828,8 +828,8 @@ mod tests {
828 [ 828 [
829 CompletionItem { 829 CompletionItem {
830 label: "m()", 830 label: "m()",
831 source_range: [110; 110), 831 source_range: 110..110,
832 delete: [110; 110), 832 delete: 110..110,
833 insert: "m()$0", 833 insert: "m()$0",
834 kind: Function, 834 kind: Function,
835 lookup: "m", 835 lookup: "m",
@@ -862,8 +862,8 @@ mod tests {
862 [ 862 [
863 CompletionItem { 863 CompletionItem {
864 label: "bar()", 864 label: "bar()",
865 source_range: [185; 185), 865 source_range: 185..185,
866 delete: [185; 185), 866 delete: 185..185,
867 insert: "bar()$0", 867 insert: "bar()$0",
868 kind: Function, 868 kind: Function,
869 lookup: "bar", 869 lookup: "bar",
@@ -871,8 +871,8 @@ mod tests {
871 }, 871 },
872 CompletionItem { 872 CompletionItem {
873 label: "foo()", 873 label: "foo()",
874 source_range: [185; 185), 874 source_range: 185..185,
875 delete: [185; 185), 875 delete: 185..185,
876 insert: "foo()$0", 876 insert: "foo()$0",
877 kind: Function, 877 kind: Function,
878 lookup: "foo", 878 lookup: "foo",
@@ -902,16 +902,16 @@ mod tests {
902 [ 902 [
903 CompletionItem { 903 CompletionItem {
904 label: "foo!(…)", 904 label: "foo!(…)",
905 source_range: [179; 179), 905 source_range: 179..179,
906 delete: [179; 179), 906 delete: 179..179,
907 insert: "foo!($0)", 907 insert: "foo!($0)",
908 kind: Macro, 908 kind: Macro,
909 detail: "#[macro_export]\nmacro_rules! foo", 909 detail: "#[macro_export]\nmacro_rules! foo",
910 }, 910 },
911 CompletionItem { 911 CompletionItem {
912 label: "main()", 912 label: "main()",
913 source_range: [179; 179), 913 source_range: 179..179,
914 delete: [179; 179), 914 delete: 179..179,
915 insert: "main()$0", 915 insert: "main()$0",
916 kind: Function, 916 kind: Function,
917 lookup: "main", 917 lookup: "main",
@@ -947,22 +947,22 @@ mod tests {
947 [ 947 [
948 CompletionItem { 948 CompletionItem {
949 label: "RIGHT_CONST", 949 label: "RIGHT_CONST",
950 source_range: [57; 57), 950 source_range: 57..57,
951 delete: [57; 57), 951 delete: 57..57,
952 insert: "RIGHT_CONST", 952 insert: "RIGHT_CONST",
953 kind: Const, 953 kind: Const,
954 }, 954 },
955 CompletionItem { 955 CompletionItem {
956 label: "RightType", 956 label: "RightType",
957 source_range: [57; 57), 957 source_range: 57..57,
958 delete: [57; 57), 958 delete: 57..57,
959 insert: "RightType", 959 insert: "RightType",
960 kind: Struct, 960 kind: Struct,
961 }, 961 },
962 CompletionItem { 962 CompletionItem {
963 label: "right_fn()", 963 label: "right_fn()",
964 source_range: [57; 57), 964 source_range: 57..57,
965 delete: [57; 57), 965 delete: 57..57,
966 insert: "right_fn()$0", 966 insert: "right_fn()$0",
967 kind: Function, 967 kind: Function,
968 lookup: "right_fn", 968 lookup: "right_fn",
@@ -986,8 +986,8 @@ mod tests {
986 [ 986 [
987 CompletionItem { 987 CompletionItem {
988 label: "foo()", 988 label: "foo()",
989 source_range: [93; 94), 989 source_range: 93..94,
990 delete: [93; 94), 990 delete: 93..94,
991 insert: "foo()$0", 991 insert: "foo()$0",
992 kind: Function, 992 kind: Function,
993 lookup: "foo", 993 lookup: "foo",
@@ -995,8 +995,8 @@ mod tests {
995 }, 995 },
996 CompletionItem { 996 CompletionItem {
997 label: "main()", 997 label: "main()",
998 source_range: [93; 94), 998 source_range: 93..94,
999 delete: [93; 94), 999 delete: 93..94,
1000 insert: "main()$0", 1000 insert: "main()$0",
1001 kind: Function, 1001 kind: Function,
1002 lookup: "main", 1002 lookup: "main",
@@ -1025,15 +1025,15 @@ mod tests {
1025 [ 1025 [
1026 CompletionItem { 1026 CompletionItem {
1027 label: "z", 1027 label: "z",
1028 source_range: [57; 57), 1028 source_range: 57..57,
1029 delete: [57; 57), 1029 delete: 57..57,
1030 insert: "z", 1030 insert: "z",
1031 kind: Module, 1031 kind: Module,
1032 }, 1032 },
1033 CompletionItem { 1033 CompletionItem {
1034 label: "z()", 1034 label: "z()",
1035 source_range: [57; 57), 1035 source_range: 57..57,
1036 delete: [57; 57), 1036 delete: 57..57,
1037 insert: "z()$0", 1037 insert: "z()$0",
1038 kind: Function, 1038 kind: Function,
1039 lookup: "z", 1039 lookup: "z",
@@ -1064,8 +1064,8 @@ mod tests {
1064 [ 1064 [
1065 CompletionItem { 1065 CompletionItem {
1066 label: "new()", 1066 label: "new()",
1067 source_range: [292; 292), 1067 source_range: 292..292,
1068 delete: [292; 292), 1068 delete: 292..292,
1069 insert: "new()$0", 1069 insert: "new()$0",
1070 kind: Function, 1070 kind: Function,
1071 lookup: "new", 1071 lookup: "new",
diff --git a/crates/ra_ide/src/completion/complete_record.rs b/crates/ra_ide/src/completion/complete_record.rs
index 83a553155..b7ab654c5 100644
--- a/crates/ra_ide/src/completion/complete_record.rs
+++ b/crates/ra_ide/src/completion/complete_record.rs
@@ -44,8 +44,8 @@ mod tests {
44 [ 44 [
45 CompletionItem { 45 CompletionItem {
46 label: "foo", 46 label: "foo",
47 source_range: [117; 118), 47 source_range: 117..118,
48 delete: [117; 118), 48 delete: 117..118,
49 insert: "foo", 49 insert: "foo",
50 kind: Field, 50 kind: Field,
51 detail: "u32", 51 detail: "u32",
@@ -73,16 +73,16 @@ mod tests {
73 [ 73 [
74 CompletionItem { 74 CompletionItem {
75 label: "bar", 75 label: "bar",
76 source_range: [161; 161), 76 source_range: 161..161,
77 delete: [161; 161), 77 delete: 161..161,
78 insert: "bar", 78 insert: "bar",
79 kind: Field, 79 kind: Field,
80 detail: "()", 80 detail: "()",
81 }, 81 },
82 CompletionItem { 82 CompletionItem {
83 label: "foo", 83 label: "foo",
84 source_range: [161; 161), 84 source_range: 161..161,
85 delete: [161; 161), 85 delete: 161..161,
86 insert: "foo", 86 insert: "foo",
87 kind: Field, 87 kind: Field,
88 detail: "u32", 88 detail: "u32",
@@ -109,8 +109,8 @@ mod tests {
109 [ 109 [
110 CompletionItem { 110 CompletionItem {
111 label: "foo", 111 label: "foo",
112 source_range: [171; 172), 112 source_range: 171..172,
113 delete: [171; 172), 113 delete: 171..172,
114 insert: "foo", 114 insert: "foo",
115 kind: Field, 115 kind: Field,
116 detail: "u32", 116 detail: "u32",
@@ -145,16 +145,16 @@ mod tests {
145 [ 145 [
146 CompletionItem { 146 CompletionItem {
147 label: "bar", 147 label: "bar",
148 source_range: [372; 372), 148 source_range: 372..372,
149 delete: [372; 372), 149 delete: 372..372,
150 insert: "bar", 150 insert: "bar",
151 kind: Field, 151 kind: Field,
152 detail: "u32", 152 detail: "u32",
153 }, 153 },
154 CompletionItem { 154 CompletionItem {
155 label: "baz", 155 label: "baz",
156 source_range: [372; 372), 156 source_range: 372..372,
157 delete: [372; 372), 157 delete: 372..372,
158 insert: "baz", 158 insert: "baz",
159 kind: Field, 159 kind: Field,
160 detail: "u32", 160 detail: "u32",
@@ -190,8 +190,8 @@ mod tests {
190 [ 190 [
191 CompletionItem { 191 CompletionItem {
192 label: "the_field", 192 label: "the_field",
193 source_range: [142; 145), 193 source_range: 142..145,
194 delete: [142; 145), 194 delete: 142..145,
195 insert: "the_field", 195 insert: "the_field",
196 kind: Field, 196 kind: Field,
197 detail: "u32", 197 detail: "u32",
@@ -215,8 +215,8 @@ mod tests {
215 [ 215 [
216 CompletionItem { 216 CompletionItem {
217 label: "the_field", 217 label: "the_field",
218 source_range: [83; 86), 218 source_range: 83..86,
219 delete: [83; 86), 219 delete: 83..86,
220 insert: "the_field", 220 insert: "the_field",
221 kind: Field, 221 kind: Field,
222 detail: "u32", 222 detail: "u32",
@@ -241,8 +241,8 @@ mod tests {
241 [ 241 [
242 CompletionItem { 242 CompletionItem {
243 label: "a", 243 label: "a",
244 source_range: [119; 119), 244 source_range: 119..119,
245 delete: [119; 119), 245 delete: 119..119,
246 insert: "a", 246 insert: "a",
247 kind: Field, 247 kind: Field,
248 detail: "u32", 248 detail: "u32",
@@ -267,8 +267,8 @@ mod tests {
267 [ 267 [
268 CompletionItem { 268 CompletionItem {
269 label: "b", 269 label: "b",
270 source_range: [119; 119), 270 source_range: 119..119,
271 delete: [119; 119), 271 delete: 119..119,
272 insert: "b", 272 insert: "b",
273 kind: Field, 273 kind: Field,
274 detail: "u32", 274 detail: "u32",
@@ -292,8 +292,8 @@ mod tests {
292 [ 292 [
293 CompletionItem { 293 CompletionItem {
294 label: "a", 294 label: "a",
295 source_range: [93; 93), 295 source_range: 93..93,
296 delete: [93; 93), 296 delete: 93..93,
297 insert: "a", 297 insert: "a",
298 kind: Field, 298 kind: Field,
299 detail: "u32", 299 detail: "u32",
@@ -317,8 +317,8 @@ mod tests {
317 [ 317 [
318 CompletionItem { 318 CompletionItem {
319 label: "the_field", 319 label: "the_field",
320 source_range: [137; 140), 320 source_range: 137..140,
321 delete: [137; 140), 321 delete: 137..140,
322 insert: "the_field", 322 insert: "the_field",
323 kind: Field, 323 kind: Field,
324 detail: "u32", 324 detail: "u32",
@@ -352,16 +352,16 @@ mod tests {
352 [ 352 [
353 CompletionItem { 353 CompletionItem {
354 label: "bar", 354 label: "bar",
355 source_range: [302; 302), 355 source_range: 302..302,
356 delete: [302; 302), 356 delete: 302..302,
357 insert: "bar", 357 insert: "bar",
358 kind: Field, 358 kind: Field,
359 detail: "u32", 359 detail: "u32",
360 }, 360 },
361 CompletionItem { 361 CompletionItem {
362 label: "baz", 362 label: "baz",
363 source_range: [302; 302), 363 source_range: 302..302,
364 delete: [302; 302), 364 delete: 302..302,
365 insert: "baz", 365 insert: "baz",
366 kind: Field, 366 kind: Field,
367 detail: "u32", 367 detail: "u32",
@@ -393,8 +393,8 @@ mod tests {
393 [ 393 [
394 CompletionItem { 394 CompletionItem {
395 label: "foo2", 395 label: "foo2",
396 source_range: [221; 221), 396 source_range: 221..221,
397 delete: [221; 221), 397 delete: 221..221,
398 insert: "foo2", 398 insert: "foo2",
399 kind: Field, 399 kind: Field,
400 detail: "u32", 400 detail: "u32",
diff --git a/crates/ra_ide/src/completion/complete_snippet.rs b/crates/ra_ide/src/completion/complete_snippet.rs
index 4bccfbfed..a3f5d1b6a 100644
--- a/crates/ra_ide/src/completion/complete_snippet.rs
+++ b/crates/ra_ide/src/completion/complete_snippet.rs
@@ -67,15 +67,15 @@ mod tests {
67 [ 67 [
68 CompletionItem { 68 CompletionItem {
69 label: "pd", 69 label: "pd",
70 source_range: [17; 17), 70 source_range: 17..17,
71 delete: [17; 17), 71 delete: 17..17,
72 insert: "eprintln!(\"$0 = {:?}\", $0);", 72 insert: "eprintln!(\"$0 = {:?}\", $0);",
73 kind: Snippet, 73 kind: Snippet,
74 }, 74 },
75 CompletionItem { 75 CompletionItem {
76 label: "ppd", 76 label: "ppd",
77 source_range: [17; 17), 77 source_range: 17..17,
78 delete: [17; 17), 78 delete: 17..17,
79 insert: "eprintln!(\"$0 = {:#?}\", $0);", 79 insert: "eprintln!(\"$0 = {:#?}\", $0);",
80 kind: Snippet, 80 kind: Snippet,
81 }, 81 },
@@ -111,23 +111,23 @@ mod tests {
111 [ 111 [
112 CompletionItem { 112 CompletionItem {
113 label: "Test function", 113 label: "Test function",
114 source_range: [78; 78), 114 source_range: 78..78,
115 delete: [78; 78), 115 delete: 78..78,
116 insert: "#[test]\nfn ${1:feature}() {\n $0\n}", 116 insert: "#[test]\nfn ${1:feature}() {\n $0\n}",
117 kind: Snippet, 117 kind: Snippet,
118 lookup: "tfn", 118 lookup: "tfn",
119 }, 119 },
120 CompletionItem { 120 CompletionItem {
121 label: "macro_rules", 121 label: "macro_rules",
122 source_range: [78; 78), 122 source_range: 78..78,
123 delete: [78; 78), 123 delete: 78..78,
124 insert: "macro_rules! $1 {\n\t($2) => {\n\t\t$0\n\t};\n}", 124 insert: "macro_rules! $1 {\n\t($2) => {\n\t\t$0\n\t};\n}",
125 kind: Snippet, 125 kind: Snippet,
126 }, 126 },
127 CompletionItem { 127 CompletionItem {
128 label: "pub(crate)", 128 label: "pub(crate)",
129 source_range: [78; 78), 129 source_range: 78..78,
130 delete: [78; 78), 130 delete: 78..78,
131 insert: "pub(crate) $0", 131 insert: "pub(crate) $0",
132 kind: Snippet, 132 kind: Snippet,
133 }, 133 },
diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs
index e2a8c59cd..ee32d1ff6 100644
--- a/crates/ra_ide/src/completion/complete_trait_impl.rs
+++ b/crates/ra_ide/src/completion/complete_trait_impl.rs
@@ -188,8 +188,7 @@ fn add_const_impl(
188 if let Some(const_name) = const_name { 188 if let Some(const_name) = const_name {
189 let snippet = make_const_compl_syntax(&const_.source(ctx.db).value); 189 let snippet = make_const_compl_syntax(&const_.source(ctx.db).value);
190 190
191 let range = 191 let range = TextRange::new(const_def_node.text_range().start(), ctx.source_range().end());
192 TextRange::new(const_def_node.text_range().start(), ctx.source_range().end());
193 192
194 CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone()) 193 CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone())
195 .text_edit(TextEdit::replace(range, snippet)) 194 .text_edit(TextEdit::replace(range, snippet))
@@ -254,24 +253,24 @@ mod tests {
254 [ 253 [
255 CompletionItem { 254 CompletionItem {
256 label: "const TEST_CONST: u16 = ", 255 label: "const TEST_CONST: u16 = ",
257 source_range: [209; 210), 256 source_range: 209..210,
258 delete: [209; 210), 257 delete: 209..210,
259 insert: "const TEST_CONST: u16 = ", 258 insert: "const TEST_CONST: u16 = ",
260 kind: Const, 259 kind: Const,
261 lookup: "TEST_CONST", 260 lookup: "TEST_CONST",
262 }, 261 },
263 CompletionItem { 262 CompletionItem {
264 label: "fn test()", 263 label: "fn test()",
265 source_range: [209; 210), 264 source_range: 209..210,
266 delete: [209; 210), 265 delete: 209..210,
267 insert: "fn test() {\n $0\n}", 266 insert: "fn test() {\n $0\n}",
268 kind: Function, 267 kind: Function,
269 lookup: "test", 268 lookup: "test",
270 }, 269 },
271 CompletionItem { 270 CompletionItem {
272 label: "type TestType = ", 271 label: "type TestType = ",
273 source_range: [209; 210), 272 source_range: 209..210,
274 delete: [209; 210), 273 delete: 209..210,
275 insert: "type TestType = ", 274 insert: "type TestType = ",
276 kind: TypeAlias, 275 kind: TypeAlias,
277 lookup: "TestType", 276 lookup: "TestType",
@@ -320,8 +319,8 @@ mod tests {
320 [ 319 [
321 CompletionItem { 320 CompletionItem {
322 label: "fn test()", 321 label: "fn test()",
323 source_range: [139; 140), 322 source_range: 139..140,
324 delete: [139; 140), 323 delete: 139..140,
325 insert: "fn test() {\n $0\n}", 324 insert: "fn test() {\n $0\n}",
326 kind: Function, 325 kind: Function,
327 lookup: "test", 326 lookup: "test",
@@ -349,8 +348,8 @@ mod tests {
349 [ 348 [
350 CompletionItem { 349 CompletionItem {
351 label: "fn foo()", 350 label: "fn foo()",
352 source_range: [141; 142), 351 source_range: 141..142,
353 delete: [138; 142), 352 delete: 138..142,
354 insert: "fn foo() {\n $0\n}", 353 insert: "fn foo() {\n $0\n}",
355 kind: Function, 354 kind: Function,
356 lookup: "foo", 355 lookup: "foo",
@@ -381,8 +380,8 @@ mod tests {
381 [ 380 [
382 CompletionItem { 381 CompletionItem {
383 label: "fn foo_bar()", 382 label: "fn foo_bar()",
384 source_range: [200; 201), 383 source_range: 200..201,
385 delete: [197; 201), 384 delete: 197..201,
386 insert: "fn foo_bar() {\n $0\n}", 385 insert: "fn foo_bar() {\n $0\n}",
387 kind: Function, 386 kind: Function,
388 lookup: "foo_bar", 387 lookup: "foo_bar",
@@ -432,8 +431,8 @@ mod tests {
432 [ 431 [
433 CompletionItem { 432 CompletionItem {
434 label: "fn foo()", 433 label: "fn foo()",
435 source_range: [144; 145), 434 source_range: 144..145,
436 delete: [141; 145), 435 delete: 141..145,
437 insert: "fn foo<T>() {\n $0\n}", 436 insert: "fn foo<T>() {\n $0\n}",
438 kind: Function, 437 kind: Function,
439 lookup: "foo", 438 lookup: "foo",
@@ -461,8 +460,8 @@ mod tests {
461 [ 460 [
462 CompletionItem { 461 CompletionItem {
463 label: "fn foo()", 462 label: "fn foo()",
464 source_range: [166; 167), 463 source_range: 166..167,
465 delete: [163; 167), 464 delete: 163..167,
466 insert: "fn foo<T>()\nwhere T: Into<String> {\n $0\n}", 465 insert: "fn foo<T>()\nwhere T: Into<String> {\n $0\n}",
467 kind: Function, 466 kind: Function,
468 lookup: "foo", 467 lookup: "foo",
@@ -488,8 +487,8 @@ mod tests {
488 [ 487 [
489 CompletionItem { 488 CompletionItem {
490 label: "type SomeType = ", 489 label: "type SomeType = ",
491 source_range: [124; 125), 490 source_range: 124..125,
492 delete: [119; 125), 491 delete: 119..125,
493 insert: "type SomeType = ", 492 insert: "type SomeType = ",
494 kind: TypeAlias, 493 kind: TypeAlias,
495 lookup: "SomeType", 494 lookup: "SomeType",
@@ -515,8 +514,8 @@ mod tests {
515 [ 514 [
516 CompletionItem { 515 CompletionItem {
517 label: "const SOME_CONST: u16 = ", 516 label: "const SOME_CONST: u16 = ",
518 source_range: [133; 134), 517 source_range: 133..134,
519 delete: [127; 134), 518 delete: 127..134,
520 insert: "const SOME_CONST: u16 = ", 519 insert: "const SOME_CONST: u16 = ",
521 kind: Const, 520 kind: Const,
522 lookup: "SOME_CONST", 521 lookup: "SOME_CONST",
@@ -542,8 +541,8 @@ mod tests {
542 [ 541 [
543 CompletionItem { 542 CompletionItem {
544 label: "const SOME_CONST: u16 = ", 543 label: "const SOME_CONST: u16 = ",
545 source_range: [138; 139), 544 source_range: 138..139,
546 delete: [132; 139), 545 delete: 132..139,
547 insert: "const SOME_CONST: u16 = ", 546 insert: "const SOME_CONST: u16 = ",
548 kind: Const, 547 kind: Const,
549 lookup: "SOME_CONST", 548 lookup: "SOME_CONST",
diff --git a/crates/ra_ide/src/completion/complete_unqualified_path.rs b/crates/ra_ide/src/completion/complete_unqualified_path.rs
index 8e3dcf96e..b2af81ae5 100644
--- a/crates/ra_ide/src/completion/complete_unqualified_path.rs
+++ b/crates/ra_ide/src/completion/complete_unqualified_path.rs
@@ -85,8 +85,8 @@ mod tests {
85 [ 85 [
86 CompletionItem { 86 CompletionItem {
87 label: "collections", 87 label: "collections",
88 source_range: [21; 24), 88 source_range: 21..24,
89 delete: [21; 24), 89 delete: 21..24,
90 insert: "collections", 90 insert: "collections",
91 }, 91 },
92 ] 92 ]
@@ -157,8 +157,8 @@ mod tests {
157 [ 157 [
158 CompletionItem { 158 CompletionItem {
159 label: "Enum", 159 label: "Enum",
160 source_range: [231; 233), 160 source_range: 231..233,
161 delete: [231; 233), 161 delete: 231..233,
162 insert: "Enum", 162 insert: "Enum",
163 kind: Enum, 163 kind: Enum,
164 }, 164 },
@@ -183,8 +183,8 @@ mod tests {
183 [ 183 [
184 CompletionItem { 184 CompletionItem {
185 label: "quux(…)", 185 label: "quux(…)",
186 source_range: [91; 91), 186 source_range: 91..91,
187 delete: [91; 91), 187 delete: 91..91,
188 insert: "quux(${1:x})$0", 188 insert: "quux(${1:x})$0",
189 kind: Function, 189 kind: Function,
190 lookup: "quux", 190 lookup: "quux",
@@ -193,16 +193,16 @@ mod tests {
193 }, 193 },
194 CompletionItem { 194 CompletionItem {
195 label: "x", 195 label: "x",
196 source_range: [91; 91), 196 source_range: 91..91,
197 delete: [91; 91), 197 delete: 91..91,
198 insert: "x", 198 insert: "x",
199 kind: Binding, 199 kind: Binding,
200 detail: "i32", 200 detail: "i32",
201 }, 201 },
202 CompletionItem { 202 CompletionItem {
203 label: "y", 203 label: "y",
204 source_range: [91; 91), 204 source_range: 91..91,
205 delete: [91; 91), 205 delete: 91..91,
206 insert: "y", 206 insert: "y",
207 kind: Binding, 207 kind: Binding,
208 detail: "i32", 208 detail: "i32",
@@ -232,23 +232,23 @@ mod tests {
232 [ 232 [
233 CompletionItem { 233 CompletionItem {
234 label: "a", 234 label: "a",
235 source_range: [242; 242), 235 source_range: 242..242,
236 delete: [242; 242), 236 delete: 242..242,
237 insert: "a", 237 insert: "a",
238 kind: Binding, 238 kind: Binding,
239 }, 239 },
240 CompletionItem { 240 CompletionItem {
241 label: "b", 241 label: "b",
242 source_range: [242; 242), 242 source_range: 242..242,
243 delete: [242; 242), 243 delete: 242..242,
244 insert: "b", 244 insert: "b",
245 kind: Binding, 245 kind: Binding,
246 detail: "i32", 246 detail: "i32",
247 }, 247 },
248 CompletionItem { 248 CompletionItem {
249 label: "quux()", 249 label: "quux()",
250 source_range: [242; 242), 250 source_range: 242..242,
251 delete: [242; 242), 251 delete: 242..242,
252 insert: "quux()$0", 252 insert: "quux()$0",
253 kind: Function, 253 kind: Function,
254 lookup: "quux", 254 lookup: "quux",
@@ -275,8 +275,8 @@ mod tests {
275 [ 275 [
276 CompletionItem { 276 CompletionItem {
277 label: "quux()", 277 label: "quux()",
278 source_range: [95; 95), 278 source_range: 95..95,
279 delete: [95; 95), 279 delete: 95..95,
280 insert: "quux()$0", 280 insert: "quux()$0",
281 kind: Function, 281 kind: Function,
282 lookup: "quux", 282 lookup: "quux",
@@ -284,8 +284,8 @@ mod tests {
284 }, 284 },
285 CompletionItem { 285 CompletionItem {
286 label: "x", 286 label: "x",
287 source_range: [95; 95), 287 source_range: 95..95,
288 delete: [95; 95), 288 delete: 95..95,
289 insert: "x", 289 insert: "x",
290 kind: Binding, 290 kind: Binding,
291 }, 291 },
@@ -308,15 +308,15 @@ mod tests {
308 [ 308 [
309 CompletionItem { 309 CompletionItem {
310 label: "T", 310 label: "T",
311 source_range: [52; 52), 311 source_range: 52..52,
312 delete: [52; 52), 312 delete: 52..52,
313 insert: "T", 313 insert: "T",
314 kind: TypeParam, 314 kind: TypeParam,
315 }, 315 },
316 CompletionItem { 316 CompletionItem {
317 label: "quux()", 317 label: "quux()",
318 source_range: [52; 52), 318 source_range: 52..52,
319 delete: [52; 52), 319 delete: 52..52,
320 insert: "quux()$0", 320 insert: "quux()$0",
321 kind: Function, 321 kind: Function,
322 lookup: "quux", 322 lookup: "quux",
@@ -341,22 +341,22 @@ mod tests {
341 [ 341 [
342 CompletionItem { 342 CompletionItem {
343 label: "Self", 343 label: "Self",
344 source_range: [54; 54), 344 source_range: 54..54,
345 delete: [54; 54), 345 delete: 54..54,
346 insert: "Self", 346 insert: "Self",
347 kind: TypeParam, 347 kind: TypeParam,
348 }, 348 },
349 CompletionItem { 349 CompletionItem {
350 label: "T", 350 label: "T",
351 source_range: [54; 54), 351 source_range: 54..54,
352 delete: [54; 54), 352 delete: 54..54,
353 insert: "T", 353 insert: "T",
354 kind: TypeParam, 354 kind: TypeParam,
355 }, 355 },
356 CompletionItem { 356 CompletionItem {
357 label: "X<…>", 357 label: "X<…>",
358 source_range: [54; 54), 358 source_range: 54..54,
359 delete: [54; 54), 359 delete: 54..54,
360 insert: "X<$0>", 360 insert: "X<$0>",
361 kind: Struct, 361 kind: Struct,
362 lookup: "X", 362 lookup: "X",
@@ -380,15 +380,15 @@ mod tests {
380 [ 380 [
381 CompletionItem { 381 CompletionItem {
382 label: "Self", 382 label: "Self",
383 source_range: [48; 48), 383 source_range: 48..48,
384 delete: [48; 48), 384 delete: 48..48,
385 insert: "Self", 385 insert: "Self",
386 kind: TypeParam, 386 kind: TypeParam,
387 }, 387 },
388 CompletionItem { 388 CompletionItem {
389 label: "X", 389 label: "X",
390 source_range: [48; 48), 390 source_range: 48..48,
391 delete: [48; 48), 391 delete: 48..48,
392 insert: "X", 392 insert: "X",
393 kind: Enum, 393 kind: Enum,
394 }, 394 },
@@ -413,22 +413,22 @@ mod tests {
413 [ 413 [
414 CompletionItem { 414 CompletionItem {
415 label: "Baz", 415 label: "Baz",
416 source_range: [105; 105), 416 source_range: 105..105,
417 delete: [105; 105), 417 delete: 105..105,
418 insert: "Baz", 418 insert: "Baz",
419 kind: Enum, 419 kind: Enum,
420 }, 420 },
421 CompletionItem { 421 CompletionItem {
422 label: "Foo", 422 label: "Foo",
423 source_range: [105; 105), 423 source_range: 105..105,
424 delete: [105; 105), 424 delete: 105..105,
425 insert: "Foo", 425 insert: "Foo",
426 kind: Struct, 426 kind: Struct,
427 }, 427 },
428 CompletionItem { 428 CompletionItem {
429 label: "quux()", 429 label: "quux()",
430 source_range: [105; 105), 430 source_range: 105..105,
431 delete: [105; 105), 431 delete: 105..105,
432 insert: "quux()$0", 432 insert: "quux()$0",
433 kind: Function, 433 kind: Function,
434 lookup: "quux", 434 lookup: "quux",
@@ -455,8 +455,8 @@ mod tests {
455 [ 455 [
456 CompletionItem { 456 CompletionItem {
457 label: "other_crate", 457 label: "other_crate",
458 source_range: [4; 4), 458 source_range: 4..4,
459 delete: [4; 4), 459 delete: 4..4,
460 insert: "other_crate", 460 insert: "other_crate",
461 kind: Module, 461 kind: Module,
462 }, 462 },
@@ -481,15 +481,15 @@ mod tests {
481 [ 481 [
482 CompletionItem { 482 CompletionItem {
483 label: "Bar", 483 label: "Bar",
484 source_range: [117; 117), 484 source_range: 117..117,
485 delete: [117; 117), 485 delete: 117..117,
486 insert: "Bar", 486 insert: "Bar",
487 kind: Struct, 487 kind: Struct,
488 }, 488 },
489 CompletionItem { 489 CompletionItem {
490 label: "quux()", 490 label: "quux()",
491 source_range: [117; 117), 491 source_range: 117..117,
492 delete: [117; 117), 492 delete: 117..117,
493 insert: "quux()$0", 493 insert: "quux()$0",
494 kind: Function, 494 kind: Function,
495 lookup: "quux", 495 lookup: "quux",
@@ -513,15 +513,15 @@ mod tests {
513 [ 513 [
514 CompletionItem { 514 CompletionItem {
515 label: "Foo", 515 label: "Foo",
516 source_range: [55; 55), 516 source_range: 55..55,
517 delete: [55; 55), 517 delete: 55..55,
518 insert: "Foo", 518 insert: "Foo",
519 kind: Struct, 519 kind: Struct,
520 }, 520 },
521 CompletionItem { 521 CompletionItem {
522 label: "x()", 522 label: "x()",
523 source_range: [55; 55), 523 source_range: 55..55,
524 delete: [55; 55), 524 delete: 55..55,
525 insert: "x()$0", 525 insert: "x()$0",
526 kind: Function, 526 kind: Function,
527 lookup: "x", 527 lookup: "x",
@@ -550,16 +550,16 @@ mod tests {
550 [ 550 [
551 CompletionItem { 551 CompletionItem {
552 label: "bar", 552 label: "bar",
553 source_range: [146; 146), 553 source_range: 146..146,
554 delete: [146; 146), 554 delete: 146..146,
555 insert: "bar", 555 insert: "bar",
556 kind: Binding, 556 kind: Binding,
557 detail: "i32", 557 detail: "i32",
558 }, 558 },
559 CompletionItem { 559 CompletionItem {
560 label: "foo()", 560 label: "foo()",
561 source_range: [146; 146), 561 source_range: 146..146,
562 delete: [146; 146), 562 delete: 146..146,
563 insert: "foo()$0", 563 insert: "foo()$0",
564 kind: Function, 564 kind: Function,
565 lookup: "foo", 565 lookup: "foo",
@@ -578,15 +578,15 @@ mod tests {
578 [ 578 [
579 CompletionItem { 579 CompletionItem {
580 label: "Self", 580 label: "Self",
581 source_range: [25; 25), 581 source_range: 25..25,
582 delete: [25; 25), 582 delete: 25..25,
583 insert: "Self", 583 insert: "Self",
584 kind: TypeParam, 584 kind: TypeParam,
585 }, 585 },
586 CompletionItem { 586 CompletionItem {
587 label: "self", 587 label: "self",
588 source_range: [25; 25), 588 source_range: 25..25,
589 delete: [25; 25), 589 delete: 25..25,
590 insert: "self", 590 insert: "self",
591 kind: Binding, 591 kind: Binding,
592 detail: "&{unknown}", 592 detail: "&{unknown}",
@@ -617,15 +617,15 @@ mod tests {
617 [ 617 [
618 CompletionItem { 618 CompletionItem {
619 label: "Option", 619 label: "Option",
620 source_range: [18; 18), 620 source_range: 18..18,
621 delete: [18; 18), 621 delete: 18..18,
622 insert: "Option", 622 insert: "Option",
623 kind: Struct, 623 kind: Struct,
624 }, 624 },
625 CompletionItem { 625 CompletionItem {
626 label: "foo()", 626 label: "foo()",
627 source_range: [18; 18), 627 source_range: 18..18,
628 delete: [18; 18), 628 delete: 18..18,
629 insert: "foo()$0", 629 insert: "foo()$0",
630 kind: Function, 630 kind: Function,
631 lookup: "foo", 631 lookup: "foo",
@@ -633,8 +633,8 @@ mod tests {
633 }, 633 },
634 CompletionItem { 634 CompletionItem {
635 label: "std", 635 label: "std",
636 source_range: [18; 18), 636 source_range: 18..18,
637 delete: [18; 18), 637 delete: 18..18,
638 insert: "std", 638 insert: "std",
639 kind: Module, 639 kind: Module,
640 }, 640 },
@@ -672,22 +672,22 @@ mod tests {
672 [ 672 [
673 CompletionItem { 673 CompletionItem {
674 label: "String", 674 label: "String",
675 source_range: [18; 18), 675 source_range: 18..18,
676 delete: [18; 18), 676 delete: 18..18,
677 insert: "String", 677 insert: "String",
678 kind: Struct, 678 kind: Struct,
679 }, 679 },
680 CompletionItem { 680 CompletionItem {
681 label: "core", 681 label: "core",
682 source_range: [18; 18), 682 source_range: 18..18,
683 delete: [18; 18), 683 delete: 18..18,
684 insert: "core", 684 insert: "core",
685 kind: Module, 685 kind: Module,
686 }, 686 },
687 CompletionItem { 687 CompletionItem {
688 label: "foo()", 688 label: "foo()",
689 source_range: [18; 18), 689 source_range: 18..18,
690 delete: [18; 18), 690 delete: 18..18,
691 insert: "foo()$0", 691 insert: "foo()$0",
692 kind: Function, 692 kind: Function,
693 lookup: "foo", 693 lookup: "foo",
@@ -695,8 +695,8 @@ mod tests {
695 }, 695 },
696 CompletionItem { 696 CompletionItem {
697 label: "std", 697 label: "std",
698 source_range: [18; 18), 698 source_range: 18..18,
699 delete: [18; 18), 699 delete: 18..18,
700 insert: "std", 700 insert: "std",
701 kind: Module, 701 kind: Module,
702 }, 702 },
@@ -742,46 +742,46 @@ mod tests {
742 [ 742 [
743 CompletionItem { 743 CompletionItem {
744 label: "bar!(…)", 744 label: "bar!(…)",
745 source_range: [252; 252), 745 source_range: 252..252,
746 delete: [252; 252), 746 delete: 252..252,
747 insert: "bar!($0)", 747 insert: "bar!($0)",
748 kind: Macro, 748 kind: Macro,
749 detail: "macro_rules! bar", 749 detail: "macro_rules! bar",
750 }, 750 },
751 CompletionItem { 751 CompletionItem {
752 label: "baz!(…)", 752 label: "baz!(…)",
753 source_range: [252; 252), 753 source_range: 252..252,
754 delete: [252; 252), 754 delete: 252..252,
755 insert: "baz!($0)", 755 insert: "baz!($0)",
756 kind: Macro, 756 kind: Macro,
757 detail: "#[macro_export]\nmacro_rules! baz", 757 detail: "#[macro_export]\nmacro_rules! baz",
758 }, 758 },
759 CompletionItem { 759 CompletionItem {
760 label: "foo!(…)", 760 label: "foo!(…)",
761 source_range: [252; 252), 761 source_range: 252..252,
762 delete: [252; 252), 762 delete: 252..252,
763 insert: "foo!($0)", 763 insert: "foo!($0)",
764 kind: Macro, 764 kind: Macro,
765 detail: "macro_rules! foo", 765 detail: "macro_rules! foo",
766 }, 766 },
767 CompletionItem { 767 CompletionItem {
768 label: "m1", 768 label: "m1",
769 source_range: [252; 252), 769 source_range: 252..252,
770 delete: [252; 252), 770 delete: 252..252,
771 insert: "m1", 771 insert: "m1",
772 kind: Module, 772 kind: Module,
773 }, 773 },
774 CompletionItem { 774 CompletionItem {
775 label: "m2", 775 label: "m2",
776 source_range: [252; 252), 776 source_range: 252..252,
777 delete: [252; 252), 777 delete: 252..252,
778 insert: "m2", 778 insert: "m2",
779 kind: Module, 779 kind: Module,
780 }, 780 },
781 CompletionItem { 781 CompletionItem {
782 label: "main()", 782 label: "main()",
783 source_range: [252; 252), 783 source_range: 252..252,
784 delete: [252; 252), 784 delete: 252..252,
785 insert: "main()$0", 785 insert: "main()$0",
786 kind: Function, 786 kind: Function,
787 lookup: "main", 787 lookup: "main",
@@ -811,16 +811,16 @@ mod tests {
811 [ 811 [
812 CompletionItem { 812 CompletionItem {
813 label: "foo!(…)", 813 label: "foo!(…)",
814 source_range: [49; 49), 814 source_range: 49..49,
815 delete: [49; 49), 815 delete: 49..49,
816 insert: "foo!($0)", 816 insert: "foo!($0)",
817 kind: Macro, 817 kind: Macro,
818 detail: "macro_rules! foo", 818 detail: "macro_rules! foo",
819 }, 819 },
820 CompletionItem { 820 CompletionItem {
821 label: "foo()", 821 label: "foo()",
822 source_range: [49; 49), 822 source_range: 49..49,
823 delete: [49; 49), 823 delete: 49..49,
824 insert: "foo()$0", 824 insert: "foo()$0",
825 kind: Function, 825 kind: Function,
826 lookup: "foo", 826 lookup: "foo",
@@ -850,16 +850,16 @@ mod tests {
850 [ 850 [
851 CompletionItem { 851 CompletionItem {
852 label: "foo!(…)", 852 label: "foo!(…)",
853 source_range: [57; 57), 853 source_range: 57..57,
854 delete: [57; 57), 854 delete: 57..57,
855 insert: "foo!($0)", 855 insert: "foo!($0)",
856 kind: Macro, 856 kind: Macro,
857 detail: "macro_rules! foo", 857 detail: "macro_rules! foo",
858 }, 858 },
859 CompletionItem { 859 CompletionItem {
860 label: "main()", 860 label: "main()",
861 source_range: [57; 57), 861 source_range: 57..57,
862 delete: [57; 57), 862 delete: 57..57,
863 insert: "main()$0", 863 insert: "main()$0",
864 kind: Function, 864 kind: Function,
865 lookup: "main", 865 lookup: "main",
@@ -889,16 +889,16 @@ mod tests {
889 [ 889 [
890 CompletionItem { 890 CompletionItem {
891 label: "foo!(…)", 891 label: "foo!(…)",
892 source_range: [50; 50), 892 source_range: 50..50,
893 delete: [50; 50), 893 delete: 50..50,
894 insert: "foo!($0)", 894 insert: "foo!($0)",
895 kind: Macro, 895 kind: Macro,
896 detail: "macro_rules! foo", 896 detail: "macro_rules! foo",
897 }, 897 },
898 CompletionItem { 898 CompletionItem {
899 label: "main()", 899 label: "main()",
900 source_range: [50; 50), 900 source_range: 50..50,
901 delete: [50; 50), 901 delete: 50..50,
902 insert: "main()$0", 902 insert: "main()$0",
903 kind: Function, 903 kind: Function,
904 lookup: "main", 904 lookup: "main",
@@ -925,8 +925,8 @@ mod tests {
925 [ 925 [
926 CompletionItem { 926 CompletionItem {
927 label: "frobnicate()", 927 label: "frobnicate()",
928 source_range: [23; 24), 928 source_range: 23..24,
929 delete: [23; 24), 929 delete: 23..24,
930 insert: "frobnicate()$0", 930 insert: "frobnicate()$0",
931 kind: Function, 931 kind: Function,
932 lookup: "frobnicate", 932 lookup: "frobnicate",
@@ -934,8 +934,8 @@ mod tests {
934 }, 934 },
935 CompletionItem { 935 CompletionItem {
936 label: "main()", 936 label: "main()",
937 source_range: [23; 24), 937 source_range: 23..24,
938 delete: [23; 24), 938 delete: 23..24,
939 insert: "main()$0", 939 insert: "main()$0",
940 kind: Function, 940 kind: Function,
941 lookup: "main", 941 lookup: "main",
@@ -962,16 +962,16 @@ mod tests {
962 [ 962 [
963 CompletionItem { 963 CompletionItem {
964 label: "m!(…)", 964 label: "m!(…)",
965 source_range: [145; 145), 965 source_range: 145..145,
966 delete: [145; 145), 966 delete: 145..145,
967 insert: "m!($0)", 967 insert: "m!($0)",
968 kind: Macro, 968 kind: Macro,
969 detail: "macro_rules! m", 969 detail: "macro_rules! m",
970 }, 970 },
971 CompletionItem { 971 CompletionItem {
972 label: "quux(…)", 972 label: "quux(…)",
973 source_range: [145; 145), 973 source_range: 145..145,
974 delete: [145; 145), 974 delete: 145..145,
975 insert: "quux(${1:x})$0", 975 insert: "quux(${1:x})$0",
976 kind: Function, 976 kind: Function,
977 lookup: "quux", 977 lookup: "quux",
@@ -980,16 +980,16 @@ mod tests {
980 }, 980 },
981 CompletionItem { 981 CompletionItem {
982 label: "x", 982 label: "x",
983 source_range: [145; 145), 983 source_range: 145..145,
984 delete: [145; 145), 984 delete: 145..145,
985 insert: "x", 985 insert: "x",
986 kind: Binding, 986 kind: Binding,
987 detail: "i32", 987 detail: "i32",
988 }, 988 },
989 CompletionItem { 989 CompletionItem {
990 label: "y", 990 label: "y",
991 source_range: [145; 145), 991 source_range: 145..145,
992 delete: [145; 145), 992 delete: 145..145,
993 insert: "y", 993 insert: "y",
994 kind: Binding, 994 kind: Binding,
995 detail: "i32", 995 detail: "i32",
@@ -1015,16 +1015,16 @@ mod tests {
1015 [ 1015 [
1016 CompletionItem { 1016 CompletionItem {
1017 label: "m!(…)", 1017 label: "m!(…)",
1018 source_range: [145; 146), 1018 source_range: 145..146,
1019 delete: [145; 146), 1019 delete: 145..146,
1020 insert: "m!($0)", 1020 insert: "m!($0)",
1021 kind: Macro, 1021 kind: Macro,
1022 detail: "macro_rules! m", 1022 detail: "macro_rules! m",
1023 }, 1023 },
1024 CompletionItem { 1024 CompletionItem {
1025 label: "quux(…)", 1025 label: "quux(…)",
1026 source_range: [145; 146), 1026 source_range: 145..146,
1027 delete: [145; 146), 1027 delete: 145..146,
1028 insert: "quux(${1:x})$0", 1028 insert: "quux(${1:x})$0",
1029 kind: Function, 1029 kind: Function,
1030 lookup: "quux", 1030 lookup: "quux",
@@ -1033,16 +1033,16 @@ mod tests {
1033 }, 1033 },
1034 CompletionItem { 1034 CompletionItem {
1035 label: "x", 1035 label: "x",
1036 source_range: [145; 146), 1036 source_range: 145..146,
1037 delete: [145; 146), 1037 delete: 145..146,
1038 insert: "x", 1038 insert: "x",
1039 kind: Binding, 1039 kind: Binding,
1040 detail: "i32", 1040 detail: "i32",
1041 }, 1041 },
1042 CompletionItem { 1042 CompletionItem {
1043 label: "y", 1043 label: "y",
1044 source_range: [145; 146), 1044 source_range: 145..146,
1045 delete: [145; 146), 1045 delete: 145..146,
1046 insert: "y", 1046 insert: "y",
1047 kind: Binding, 1047 kind: Binding,
1048 detail: "i32", 1048 detail: "i32",
@@ -1068,16 +1068,16 @@ mod tests {
1068 [ 1068 [
1069 CompletionItem { 1069 CompletionItem {
1070 label: "m!(…)", 1070 label: "m!(…)",
1071 source_range: [145; 146), 1071 source_range: 145..146,
1072 delete: [145; 146), 1072 delete: 145..146,
1073 insert: "m!($0)", 1073 insert: "m!($0)",
1074 kind: Macro, 1074 kind: Macro,
1075 detail: "macro_rules! m", 1075 detail: "macro_rules! m",
1076 }, 1076 },
1077 CompletionItem { 1077 CompletionItem {
1078 label: "quux(…)", 1078 label: "quux(…)",
1079 source_range: [145; 146), 1079 source_range: 145..146,
1080 delete: [145; 146), 1080 delete: 145..146,
1081 insert: "quux(${1:x})$0", 1081 insert: "quux(${1:x})$0",
1082 kind: Function, 1082 kind: Function,
1083 lookup: "quux", 1083 lookup: "quux",
@@ -1086,16 +1086,16 @@ mod tests {
1086 }, 1086 },
1087 CompletionItem { 1087 CompletionItem {
1088 label: "x", 1088 label: "x",
1089 source_range: [145; 146), 1089 source_range: 145..146,
1090 delete: [145; 146), 1090 delete: 145..146,
1091 insert: "x", 1091 insert: "x",
1092 kind: Binding, 1092 kind: Binding,
1093 detail: "i32", 1093 detail: "i32",
1094 }, 1094 },
1095 CompletionItem { 1095 CompletionItem {
1096 label: "y", 1096 label: "y",
1097 source_range: [145; 146), 1097 source_range: 145..146,
1098 delete: [145; 146), 1098 delete: 145..146,
1099 insert: "y", 1099 insert: "y",
1100 kind: Binding, 1100 kind: Binding,
1101 detail: "i32", 1101 detail: "i32",
@@ -1121,14 +1121,14 @@ mod tests {
1121 [ 1121 [
1122 CompletionItem { 1122 CompletionItem {
1123 label: "Quux", 1123 label: "Quux",
1124 source_range: [82; 82), 1124 source_range: 82..82,
1125 delete: [82; 82), 1125 delete: 82..82,
1126 insert: "Quux", 1126 insert: "Quux",
1127 }, 1127 },
1128 CompletionItem { 1128 CompletionItem {
1129 label: "main()", 1129 label: "main()",
1130 source_range: [82; 82), 1130 source_range: 82..82,
1131 delete: [82; 82), 1131 delete: 82..82,
1132 insert: "main()$0", 1132 insert: "main()$0",
1133 kind: Function, 1133 kind: Function,
1134 lookup: "main", 1134 lookup: "main",
@@ -1162,31 +1162,31 @@ mod tests {
1162 [ 1162 [
1163 CompletionItem { 1163 CompletionItem {
1164 label: "Foo", 1164 label: "Foo",
1165 source_range: [248; 250), 1165 source_range: 248..250,
1166 delete: [248; 250), 1166 delete: 248..250,
1167 insert: "Foo", 1167 insert: "Foo",
1168 kind: Enum, 1168 kind: Enum,
1169 }, 1169 },
1170 CompletionItem { 1170 CompletionItem {
1171 label: "Foo::Bar", 1171 label: "Foo::Bar",
1172 source_range: [248; 250), 1172 source_range: 248..250,
1173 delete: [248; 250), 1173 delete: 248..250,
1174 insert: "Foo::Bar", 1174 insert: "Foo::Bar",
1175 kind: EnumVariant, 1175 kind: EnumVariant,
1176 detail: "()", 1176 detail: "()",
1177 }, 1177 },
1178 CompletionItem { 1178 CompletionItem {
1179 label: "Foo::Baz", 1179 label: "Foo::Baz",
1180 source_range: [248; 250), 1180 source_range: 248..250,
1181 delete: [248; 250), 1181 delete: 248..250,
1182 insert: "Foo::Baz", 1182 insert: "Foo::Baz",
1183 kind: EnumVariant, 1183 kind: EnumVariant,
1184 detail: "()", 1184 detail: "()",
1185 }, 1185 },
1186 CompletionItem { 1186 CompletionItem {
1187 label: "Foo::Quux", 1187 label: "Foo::Quux",
1188 source_range: [248; 250), 1188 source_range: 248..250,
1189 delete: [248; 250), 1189 delete: 248..250,
1190 insert: "Foo::Quux", 1190 insert: "Foo::Quux",
1191 kind: EnumVariant, 1191 kind: EnumVariant,
1192 detail: "()", 1192 detail: "()",
@@ -1220,31 +1220,31 @@ mod tests {
1220 [ 1220 [
1221 CompletionItem { 1221 CompletionItem {
1222 label: "Foo", 1222 label: "Foo",
1223 source_range: [219; 221), 1223 source_range: 219..221,
1224 delete: [219; 221), 1224 delete: 219..221,
1225 insert: "Foo", 1225 insert: "Foo",
1226 kind: Enum, 1226 kind: Enum,
1227 }, 1227 },
1228 CompletionItem { 1228 CompletionItem {
1229 label: "Foo::Bar", 1229 label: "Foo::Bar",
1230 source_range: [219; 221), 1230 source_range: 219..221,
1231 delete: [219; 221), 1231 delete: 219..221,
1232 insert: "Foo::Bar", 1232 insert: "Foo::Bar",
1233 kind: EnumVariant, 1233 kind: EnumVariant,
1234 detail: "()", 1234 detail: "()",
1235 }, 1235 },
1236 CompletionItem { 1236 CompletionItem {
1237 label: "Foo::Baz", 1237 label: "Foo::Baz",
1238 source_range: [219; 221), 1238 source_range: 219..221,
1239 delete: [219; 221), 1239 delete: 219..221,
1240 insert: "Foo::Baz", 1240 insert: "Foo::Baz",
1241 kind: EnumVariant, 1241 kind: EnumVariant,
1242 detail: "()", 1242 detail: "()",
1243 }, 1243 },
1244 CompletionItem { 1244 CompletionItem {
1245 label: "Foo::Quux", 1245 label: "Foo::Quux",
1246 source_range: [219; 221), 1246 source_range: 219..221,
1247 delete: [219; 221), 1247 delete: 219..221,
1248 insert: "Foo::Quux", 1248 insert: "Foo::Quux",
1249 kind: EnumVariant, 1249 kind: EnumVariant,
1250 detail: "()", 1250 detail: "()",
@@ -1274,39 +1274,39 @@ mod tests {
1274 [ 1274 [
1275 CompletionItem { 1275 CompletionItem {
1276 label: "Foo", 1276 label: "Foo",
1277 source_range: [185; 186), 1277 source_range: 185..186,
1278 delete: [185; 186), 1278 delete: 185..186,
1279 insert: "Foo", 1279 insert: "Foo",
1280 kind: Enum, 1280 kind: Enum,
1281 }, 1281 },
1282 CompletionItem { 1282 CompletionItem {
1283 label: "Foo::Bar", 1283 label: "Foo::Bar",
1284 source_range: [185; 186), 1284 source_range: 185..186,
1285 delete: [185; 186), 1285 delete: 185..186,
1286 insert: "Foo::Bar", 1286 insert: "Foo::Bar",
1287 kind: EnumVariant, 1287 kind: EnumVariant,
1288 detail: "()", 1288 detail: "()",
1289 }, 1289 },
1290 CompletionItem { 1290 CompletionItem {
1291 label: "Foo::Baz", 1291 label: "Foo::Baz",
1292 source_range: [185; 186), 1292 source_range: 185..186,
1293 delete: [185; 186), 1293 delete: 185..186,
1294 insert: "Foo::Baz", 1294 insert: "Foo::Baz",
1295 kind: EnumVariant, 1295 kind: EnumVariant,
1296 detail: "()", 1296 detail: "()",
1297 }, 1297 },
1298 CompletionItem { 1298 CompletionItem {
1299 label: "Foo::Quux", 1299 label: "Foo::Quux",
1300 source_range: [185; 186), 1300 source_range: 185..186,
1301 delete: [185; 186), 1301 delete: 185..186,
1302 insert: "Foo::Quux", 1302 insert: "Foo::Quux",
1303 kind: EnumVariant, 1303 kind: EnumVariant,
1304 detail: "()", 1304 detail: "()",
1305 }, 1305 },
1306 CompletionItem { 1306 CompletionItem {
1307 label: "main()", 1307 label: "main()",
1308 source_range: [185; 186), 1308 source_range: 185..186,
1309 delete: [185; 186), 1309 delete: 185..186,
1310 insert: "main()$0", 1310 insert: "main()$0",
1311 kind: Function, 1311 kind: Function,
1312 lookup: "main", 1312 lookup: "main",
diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ra_ide/src/completion/presentation.rs
index 6a6ddc7bd..9f9f06bf0 100644
--- a/crates/ra_ide/src/completion/presentation.rs
+++ b/crates/ra_ide/src/completion/presentation.rs
@@ -452,8 +452,8 @@ mod tests {
452 [ 452 [
453 CompletionItem { 453 CompletionItem {
454 label: "Foo", 454 label: "Foo",
455 source_range: [121; 123), 455 source_range: 121..123,
456 delete: [121; 123), 456 delete: 121..123,
457 insert: "Foo", 457 insert: "Foo",
458 kind: EnumVariant, 458 kind: EnumVariant,
459 detail: "{ x: i32, y: i32 }", 459 detail: "{ x: i32, y: i32 }",
@@ -478,8 +478,8 @@ mod tests {
478 [ 478 [
479 CompletionItem { 479 CompletionItem {
480 label: "Foo(…)", 480 label: "Foo(…)",
481 source_range: [115; 117), 481 source_range: 115..117,
482 delete: [115; 117), 482 delete: 115..117,
483 insert: "Foo($0)", 483 insert: "Foo($0)",
484 kind: EnumVariant, 484 kind: EnumVariant,
485 lookup: "Foo", 485 lookup: "Foo",
@@ -506,8 +506,8 @@ mod tests {
506 [ 506 [
507 CompletionItem { 507 CompletionItem {
508 label: "Foo", 508 label: "Foo",
509 source_range: [104; 106), 509 source_range: 104..106,
510 delete: [104; 106), 510 delete: 104..106,
511 insert: "Foo", 511 insert: "Foo",
512 kind: EnumVariant, 512 kind: EnumVariant,
513 detail: "()", 513 detail: "()",
@@ -534,8 +534,8 @@ mod tests {
534 [ 534 [
535 CompletionItem { 535 CompletionItem {
536 label: "main()", 536 label: "main()",
537 source_range: [203; 206), 537 source_range: 203..206,
538 delete: [203; 206), 538 delete: 203..206,
539 insert: "main()$0", 539 insert: "main()$0",
540 kind: Function, 540 kind: Function,
541 lookup: "main", 541 lookup: "main",
@@ -543,8 +543,8 @@ mod tests {
543 }, 543 },
544 CompletionItem { 544 CompletionItem {
545 label: "something_deprecated()", 545 label: "something_deprecated()",
546 source_range: [203; 206), 546 source_range: 203..206,
547 delete: [203; 206), 547 delete: 203..206,
548 insert: "something_deprecated()$0", 548 insert: "something_deprecated()$0",
549 kind: Function, 549 kind: Function,
550 lookup: "something_deprecated", 550 lookup: "something_deprecated",
@@ -553,8 +553,8 @@ mod tests {
553 }, 553 },
554 CompletionItem { 554 CompletionItem {
555 label: "something_else_deprecated()", 555 label: "something_else_deprecated()",
556 source_range: [203; 206), 556 source_range: 203..206,
557 delete: [203; 206), 557 delete: 203..206,
558 insert: "something_else_deprecated()$0", 558 insert: "something_else_deprecated()$0",
559 kind: Function, 559 kind: Function,
560 lookup: "something_else_deprecated", 560 lookup: "something_else_deprecated",
@@ -580,8 +580,8 @@ mod tests {
580 [ 580 [
581 CompletionItem { 581 CompletionItem {
582 label: "main()", 582 label: "main()",
583 source_range: [61; 64), 583 source_range: 61..64,
584 delete: [61; 64), 584 delete: 61..64,
585 insert: "main()$0", 585 insert: "main()$0",
586 kind: Function, 586 kind: Function,
587 lookup: "main", 587 lookup: "main",
@@ -589,8 +589,8 @@ mod tests {
589 }, 589 },
590 CompletionItem { 590 CompletionItem {
591 label: "no_args()", 591 label: "no_args()",
592 source_range: [61; 64), 592 source_range: 61..64,
593 delete: [61; 64), 593 delete: 61..64,
594 insert: "no_args()$0", 594 insert: "no_args()$0",
595 kind: Function, 595 kind: Function,
596 lookup: "no_args", 596 lookup: "no_args",
@@ -610,8 +610,8 @@ mod tests {
610 [ 610 [
611 CompletionItem { 611 CompletionItem {
612 label: "main()", 612 label: "main()",
613 source_range: [80; 85), 613 source_range: 80..85,
614 delete: [80; 85), 614 delete: 80..85,
615 insert: "main()$0", 615 insert: "main()$0",
616 kind: Function, 616 kind: Function,
617 lookup: "main", 617 lookup: "main",
@@ -619,8 +619,8 @@ mod tests {
619 }, 619 },
620 CompletionItem { 620 CompletionItem {
621 label: "with_args(…)", 621 label: "with_args(…)",
622 source_range: [80; 85), 622 source_range: 80..85,
623 delete: [80; 85), 623 delete: 80..85,
624 insert: "with_args(${1:x}, ${2:y})$0", 624 insert: "with_args(${1:x}, ${2:y})$0",
625 kind: Function, 625 kind: Function,
626 lookup: "with_args", 626 lookup: "with_args",
@@ -646,8 +646,8 @@ mod tests {
646 [ 646 [
647 CompletionItem { 647 CompletionItem {
648 label: "foo()", 648 label: "foo()",
649 source_range: [163; 164), 649 source_range: 163..164,
650 delete: [163; 164), 650 delete: 163..164,
651 insert: "foo()$0", 651 insert: "foo()$0",
652 kind: Method, 652 kind: Method,
653 lookup: "foo", 653 lookup: "foo",
@@ -674,23 +674,23 @@ mod tests {
674 [ 674 [
675 CompletionItem { 675 CompletionItem {
676 label: "None", 676 label: "None",
677 source_range: [144; 147), 677 source_range: 144..147,
678 delete: [144; 147), 678 delete: 144..147,
679 insert: "None", 679 insert: "None",
680 kind: EnumVariant, 680 kind: EnumVariant,
681 detail: "()", 681 detail: "()",
682 }, 682 },
683 CompletionItem { 683 CompletionItem {
684 label: "Option", 684 label: "Option",
685 source_range: [144; 147), 685 source_range: 144..147,
686 delete: [144; 147), 686 delete: 144..147,
687 insert: "Option", 687 insert: "Option",
688 kind: Enum, 688 kind: Enum,
689 }, 689 },
690 CompletionItem { 690 CompletionItem {
691 label: "Some(…)", 691 label: "Some(…)",
692 source_range: [144; 147), 692 source_range: 144..147,
693 delete: [144; 147), 693 delete: 144..147,
694 insert: "Some($0)", 694 insert: "Some($0)",
695 kind: EnumVariant, 695 kind: EnumVariant,
696 lookup: "Some", 696 lookup: "Some",
@@ -699,8 +699,8 @@ mod tests {
699 }, 699 },
700 CompletionItem { 700 CompletionItem {
701 label: "main()", 701 label: "main()",
702 source_range: [144; 147), 702 source_range: 144..147,
703 delete: [144; 147), 703 delete: 144..147,
704 insert: "main()$0", 704 insert: "main()$0",
705 kind: Function, 705 kind: Function,
706 lookup: "main", 706 lookup: "main",
@@ -725,23 +725,23 @@ mod tests {
725 [ 725 [
726 CompletionItem { 726 CompletionItem {
727 label: "None", 727 label: "None",
728 source_range: [185; 188), 728 source_range: 185..188,
729 delete: [185; 188), 729 delete: 185..188,
730 insert: "None", 730 insert: "None",
731 kind: EnumVariant, 731 kind: EnumVariant,
732 detail: "()", 732 detail: "()",
733 }, 733 },
734 CompletionItem { 734 CompletionItem {
735 label: "Option", 735 label: "Option",
736 source_range: [185; 188), 736 source_range: 185..188,
737 delete: [185; 188), 737 delete: 185..188,
738 insert: "Option", 738 insert: "Option",
739 kind: Enum, 739 kind: Enum,
740 }, 740 },
741 CompletionItem { 741 CompletionItem {
742 label: "Some(…)", 742 label: "Some(…)",
743 source_range: [185; 188), 743 source_range: 185..188,
744 delete: [185; 188), 744 delete: 185..188,
745 insert: "Some($0)", 745 insert: "Some($0)",
746 kind: EnumVariant, 746 kind: EnumVariant,
747 lookup: "Some", 747 lookup: "Some",
@@ -771,8 +771,8 @@ mod tests {
771 [ 771 [
772 CompletionItem { 772 CompletionItem {
773 label: "foo(…)", 773 label: "foo(…)",
774 source_range: [171; 172), 774 source_range: 171..172,
775 delete: [171; 172), 775 delete: 171..172,
776 insert: "foo(${1:x})$0", 776 insert: "foo(${1:x})$0",
777 kind: Method, 777 kind: Method,
778 lookup: "foo", 778 lookup: "foo",
@@ -806,8 +806,8 @@ mod tests {
806 [ 806 [
807 CompletionItem { 807 CompletionItem {
808 label: "foo(…)", 808 label: "foo(…)",
809 source_range: [171; 172), 809 source_range: 171..172,
810 delete: [171; 172), 810 delete: 171..172,
811 insert: "foo($0)", 811 insert: "foo($0)",
812 kind: Method, 812 kind: Method,
813 lookup: "foo", 813 lookup: "foo",
@@ -833,8 +833,8 @@ mod tests {
833 [ 833 [
834 CompletionItem { 834 CompletionItem {
835 label: "foo", 835 label: "foo",
836 source_range: [40; 41), 836 source_range: 40..41,
837 delete: [40; 41), 837 delete: 40..41,
838 insert: "foo", 838 insert: "foo",
839 kind: Function, 839 kind: Function,
840 detail: "pub fn foo()", 840 detail: "pub fn foo()",
@@ -860,16 +860,16 @@ mod tests {
860 [ 860 [
861 CompletionItem { 861 CompletionItem {
862 label: "frobnicate", 862 label: "frobnicate",
863 source_range: [35; 39), 863 source_range: 35..39,
864 delete: [35; 39), 864 delete: 35..39,
865 insert: "frobnicate", 865 insert: "frobnicate",
866 kind: Function, 866 kind: Function,
867 detail: "fn frobnicate()", 867 detail: "fn frobnicate()",
868 }, 868 },
869 CompletionItem { 869 CompletionItem {
870 label: "main", 870 label: "main",
871 source_range: [35; 39), 871 source_range: 35..39,
872 delete: [35; 39), 872 delete: 35..39,
873 insert: "main", 873 insert: "main",
874 kind: Function, 874 kind: Function,
875 detail: "fn main()", 875 detail: "fn main()",
@@ -892,8 +892,8 @@ mod tests {
892 [ 892 [
893 CompletionItem { 893 CompletionItem {
894 label: "new", 894 label: "new",
895 source_range: [67; 69), 895 source_range: 67..69,
896 delete: [67; 69), 896 delete: 67..69,
897 insert: "new", 897 insert: "new",
898 kind: Function, 898 kind: Function,
899 detail: "fn new() -> Foo", 899 detail: "fn new() -> Foo",
@@ -917,16 +917,16 @@ mod tests {
917 [ 917 [
918 CompletionItem { 918 CompletionItem {
919 label: "Vec<…>", 919 label: "Vec<…>",
920 source_range: [61; 63), 920 source_range: 61..63,
921 delete: [61; 63), 921 delete: 61..63,
922 insert: "Vec<$0>", 922 insert: "Vec<$0>",
923 kind: Struct, 923 kind: Struct,
924 lookup: "Vec", 924 lookup: "Vec",
925 }, 925 },
926 CompletionItem { 926 CompletionItem {
927 label: "foo(…)", 927 label: "foo(…)",
928 source_range: [61; 63), 928 source_range: 61..63,
929 delete: [61; 63), 929 delete: 61..63,
930 insert: "foo(${1:xs})$0", 930 insert: "foo(${1:xs})$0",
931 kind: Function, 931 kind: Function,
932 lookup: "foo", 932 lookup: "foo",
@@ -947,16 +947,16 @@ mod tests {
947 [ 947 [
948 CompletionItem { 948 CompletionItem {
949 label: "Vec<…>", 949 label: "Vec<…>",
950 source_range: [64; 66), 950 source_range: 64..66,
951 delete: [64; 66), 951 delete: 64..66,
952 insert: "Vec<$0>", 952 insert: "Vec<$0>",
953 kind: TypeAlias, 953 kind: TypeAlias,
954 lookup: "Vec", 954 lookup: "Vec",
955 }, 955 },
956 CompletionItem { 956 CompletionItem {
957 label: "foo(…)", 957 label: "foo(…)",
958 source_range: [64; 66), 958 source_range: 64..66,
959 delete: [64; 66), 959 delete: 64..66,
960 insert: "foo(${1:xs})$0", 960 insert: "foo(${1:xs})$0",
961 kind: Function, 961 kind: Function,
962 lookup: "foo", 962 lookup: "foo",
@@ -977,15 +977,15 @@ mod tests {
977 [ 977 [
978 CompletionItem { 978 CompletionItem {
979 label: "Vec", 979 label: "Vec",
980 source_range: [68; 70), 980 source_range: 68..70,
981 delete: [68; 70), 981 delete: 68..70,
982 insert: "Vec", 982 insert: "Vec",
983 kind: Struct, 983 kind: Struct,
984 }, 984 },
985 CompletionItem { 985 CompletionItem {
986 label: "foo(…)", 986 label: "foo(…)",
987 source_range: [68; 70), 987 source_range: 68..70,
988 delete: [68; 70), 988 delete: 68..70,
989 insert: "foo(${1:xs})$0", 989 insert: "foo(${1:xs})$0",
990 kind: Function, 990 kind: Function,
991 lookup: "foo", 991 lookup: "foo",
@@ -1006,15 +1006,15 @@ mod tests {
1006 [ 1006 [
1007 CompletionItem { 1007 CompletionItem {
1008 label: "Vec", 1008 label: "Vec",
1009 source_range: [61; 63), 1009 source_range: 61..63,
1010 delete: [61; 63), 1010 delete: 61..63,
1011 insert: "Vec", 1011 insert: "Vec",
1012 kind: Struct, 1012 kind: Struct,
1013 }, 1013 },
1014 CompletionItem { 1014 CompletionItem {
1015 label: "foo(…)", 1015 label: "foo(…)",
1016 source_range: [61; 63), 1016 source_range: 61..63,
1017 delete: [61; 63), 1017 delete: 61..63,
1018 insert: "foo(${1:xs})$0", 1018 insert: "foo(${1:xs})$0",
1019 kind: Function, 1019 kind: Function,
1020 lookup: "foo", 1020 lookup: "foo",
@@ -1046,8 +1046,8 @@ mod tests {
1046 [ 1046 [
1047 CompletionItem { 1047 CompletionItem {
1048 label: "frobnicate!", 1048 label: "frobnicate!",
1049 source_range: [9; 9), 1049 source_range: 9..9,
1050 delete: [9; 9), 1050 delete: 9..9,
1051 insert: "frobnicate", 1051 insert: "frobnicate",
1052 kind: Macro, 1052 kind: Macro,
1053 detail: "#[macro_export]\nmacro_rules! frobnicate", 1053 detail: "#[macro_export]\nmacro_rules! frobnicate",
@@ -1072,16 +1072,16 @@ mod tests {
1072 [ 1072 [
1073 CompletionItem { 1073 CompletionItem {
1074 label: "frobnicate!", 1074 label: "frobnicate!",
1075 source_range: [56; 60), 1075 source_range: 56..60,
1076 delete: [56; 60), 1076 delete: 56..60,
1077 insert: "frobnicate", 1077 insert: "frobnicate",
1078 kind: Macro, 1078 kind: Macro,
1079 detail: "macro_rules! frobnicate", 1079 detail: "macro_rules! frobnicate",
1080 }, 1080 },
1081 CompletionItem { 1081 CompletionItem {
1082 label: "main()", 1082 label: "main()",
1083 source_range: [56; 60), 1083 source_range: 56..60,
1084 delete: [56; 60), 1084 delete: 56..60,
1085 insert: "main()$0", 1085 insert: "main()$0",
1086 kind: Function, 1086 kind: Function,
1087 lookup: "main", 1087 lookup: "main",
@@ -1109,24 +1109,24 @@ mod tests {
1109 [ 1109 [
1110 CompletionItem { 1110 CompletionItem {
1111 label: "another_field", 1111 label: "another_field",
1112 source_range: [201; 201), 1112 source_range: 201..201,
1113 delete: [201; 201), 1113 delete: 201..201,
1114 insert: "another_field", 1114 insert: "another_field",
1115 kind: Field, 1115 kind: Field,
1116 detail: "i64", 1116 detail: "i64",
1117 }, 1117 },
1118 CompletionItem { 1118 CompletionItem {
1119 label: "my_string", 1119 label: "my_string",
1120 source_range: [201; 201), 1120 source_range: 201..201,
1121 delete: [201; 201), 1121 delete: 201..201,
1122 insert: "my_string", 1122 insert: "my_string",
1123 kind: Field, 1123 kind: Field,
1124 detail: "{unknown}", 1124 detail: "{unknown}",
1125 }, 1125 },
1126 CompletionItem { 1126 CompletionItem {
1127 label: "the_field", 1127 label: "the_field",
1128 source_range: [201; 201), 1128 source_range: 201..201,
1129 delete: [201; 201), 1129 delete: 201..201,
1130 insert: "the_field", 1130 insert: "the_field",
1131 kind: Field, 1131 kind: Field,
1132 detail: "u32", 1132 detail: "u32",
@@ -1153,16 +1153,16 @@ mod tests {
1153 [ 1153 [
1154 CompletionItem { 1154 CompletionItem {
1155 label: "another_field", 1155 label: "another_field",
1156 source_range: [208; 208), 1156 source_range: 208..208,
1157 delete: [208; 208), 1157 delete: 208..208,
1158 insert: "another_field", 1158 insert: "another_field",
1159 kind: Field, 1159 kind: Field,
1160 detail: "i64", 1160 detail: "i64",
1161 }, 1161 },
1162 CompletionItem { 1162 CompletionItem {
1163 label: "another_good_type", 1163 label: "another_good_type",
1164 source_range: [208; 208), 1164 source_range: 208..208,
1165 delete: [208; 208), 1165 delete: 208..208,
1166 insert: "another_good_type", 1166 insert: "another_good_type",
1167 kind: Field, 1167 kind: Field,
1168 detail: "u32", 1168 detail: "u32",
@@ -1170,8 +1170,8 @@ mod tests {
1170 }, 1170 },
1171 CompletionItem { 1171 CompletionItem {
1172 label: "the_field", 1172 label: "the_field",
1173 source_range: [208; 208), 1173 source_range: 208..208,
1174 delete: [208; 208), 1174 delete: 208..208,
1175 insert: "the_field", 1175 insert: "the_field",
1176 kind: Field, 1176 kind: Field,
1177 detail: "u32", 1177 detail: "u32",
@@ -1201,16 +1201,16 @@ mod tests {
1201 [ 1201 [
1202 CompletionItem { 1202 CompletionItem {
1203 label: "another_field", 1203 label: "another_field",
1204 source_range: [270; 270), 1204 source_range: 270..270,
1205 delete: [270; 270), 1205 delete: 270..270,
1206 insert: "another_field", 1206 insert: "another_field",
1207 kind: Field, 1207 kind: Field,
1208 detail: "i64", 1208 detail: "i64",
1209 }, 1209 },
1210 CompletionItem { 1210 CompletionItem {
1211 label: "another_good_type", 1211 label: "another_good_type",
1212 source_range: [270; 270), 1212 source_range: 270..270,
1213 delete: [270; 270), 1213 delete: 270..270,
1214 insert: "another_good_type", 1214 insert: "another_good_type",
1215 kind: Field, 1215 kind: Field,
1216 detail: "u32", 1216 detail: "u32",
@@ -1218,8 +1218,8 @@ mod tests {
1218 }, 1218 },
1219 CompletionItem { 1219 CompletionItem {
1220 label: "the_field", 1220 label: "the_field",
1221 source_range: [270; 270), 1221 source_range: 270..270,
1222 delete: [270; 270), 1222 delete: 270..270,
1223 insert: "the_field", 1223 insert: "the_field",
1224 kind: Field, 1224 kind: Field,
1225 detail: "u32", 1225 detail: "u32",
@@ -1249,8 +1249,8 @@ mod tests {
1249 [ 1249 [
1250 CompletionItem { 1250 CompletionItem {
1251 label: "another_field", 1251 label: "another_field",
1252 source_range: [336; 336), 1252 source_range: 336..336,
1253 delete: [336; 336), 1253 delete: 336..336,
1254 insert: "another_field", 1254 insert: "another_field",
1255 kind: Field, 1255 kind: Field,
1256 detail: "i64", 1256 detail: "i64",
@@ -1258,16 +1258,16 @@ mod tests {
1258 }, 1258 },
1259 CompletionItem { 1259 CompletionItem {
1260 label: "another_good_type", 1260 label: "another_good_type",
1261 source_range: [336; 336), 1261 source_range: 336..336,
1262 delete: [336; 336), 1262 delete: 336..336,
1263 insert: "another_good_type", 1263 insert: "another_good_type",
1264 kind: Field, 1264 kind: Field,
1265 detail: "u32", 1265 detail: "u32",
1266 }, 1266 },
1267 CompletionItem { 1267 CompletionItem {
1268 label: "the_field", 1268 label: "the_field",
1269 source_range: [336; 336), 1269 source_range: 336..336,
1270 delete: [336; 336), 1270 delete: 336..336,
1271 insert: "the_field", 1271 insert: "the_field",
1272 kind: Field, 1272 kind: Field,
1273 detail: "u32", 1273 detail: "u32",
@@ -1296,16 +1296,16 @@ mod tests {
1296 [ 1296 [
1297 CompletionItem { 1297 CompletionItem {
1298 label: "another_field", 1298 label: "another_field",
1299 source_range: [328; 328), 1299 source_range: 328..328,
1300 delete: [328; 328), 1300 delete: 328..328,
1301 insert: "another_field", 1301 insert: "another_field",
1302 kind: Field, 1302 kind: Field,
1303 detail: "i64", 1303 detail: "i64",
1304 }, 1304 },
1305 CompletionItem { 1305 CompletionItem {
1306 label: "another_good_type", 1306 label: "another_good_type",
1307 source_range: [328; 328), 1307 source_range: 328..328,
1308 delete: [328; 328), 1308 delete: 328..328,
1309 insert: "another_good_type", 1309 insert: "another_good_type",
1310 kind: Field, 1310 kind: Field,
1311 detail: "u32", 1311 detail: "u32",
@@ -1313,8 +1313,8 @@ mod tests {
1313 }, 1313 },
1314 CompletionItem { 1314 CompletionItem {
1315 label: "the_field", 1315 label: "the_field",
1316 source_range: [328; 328), 1316 source_range: 328..328,
1317 delete: [328; 328), 1317 delete: 328..328,
1318 insert: "the_field", 1318 insert: "the_field",
1319 kind: Field, 1319 kind: Field,
1320 detail: "u32", 1320 detail: "u32",