diff options
-rw-r--r-- | crates/assists/src/handlers/convert_integer_literal.rs | 370 |
1 files changed, 2 insertions, 368 deletions
diff --git a/crates/assists/src/handlers/convert_integer_literal.rs b/crates/assists/src/handlers/convert_integer_literal.rs index 1094ed3f3..667115382 100644 --- a/crates/assists/src/handlers/convert_integer_literal.rs +++ b/crates/assists/src/handlers/convert_integer_literal.rs | |||
@@ -129,34 +129,6 @@ mod tests { | |||
129 | ); | 129 | ); |
130 | } | 130 | } |
131 | 131 | ||
132 | // Decimal numbers under 3 digits have a special case where they return early because we can't fit a | ||
133 | // other base's prefix, so we have a separate test for that. | ||
134 | #[test] | ||
135 | fn convert_small_decimal_integer() { | ||
136 | let before = "const _: i32 = 10<|>;"; | ||
137 | |||
138 | check_assist_by_label( | ||
139 | convert_integer_literal, | ||
140 | before, | ||
141 | "const _: i32 = 0b1010;", | ||
142 | "Convert 10 to 0b1010", | ||
143 | ); | ||
144 | |||
145 | check_assist_by_label( | ||
146 | convert_integer_literal, | ||
147 | before, | ||
148 | "const _: i32 = 0o12;", | ||
149 | "Convert 10 to 0o12", | ||
150 | ); | ||
151 | |||
152 | check_assist_by_label( | ||
153 | convert_integer_literal, | ||
154 | before, | ||
155 | "const _: i32 = 0xA;", | ||
156 | "Convert 10 to 0xA", | ||
157 | ); | ||
158 | } | ||
159 | |||
160 | #[test] | 132 | #[test] |
161 | fn convert_hexadecimal_integer() { | 133 | fn convert_hexadecimal_integer() { |
162 | let before = "const _: i32 = 0xFF<|>;"; | 134 | let before = "const _: i32 = 0xFF<|>;"; |
@@ -236,7 +208,7 @@ mod tests { | |||
236 | } | 208 | } |
237 | 209 | ||
238 | #[test] | 210 | #[test] |
239 | fn convert_decimal_integer_with_underscores() { | 211 | fn convert_integer_with_underscores() { |
240 | let before = "const _: i32 = 1_00_0<|>;"; | 212 | let before = "const _: i32 = 1_00_0<|>;"; |
241 | 213 | ||
242 | check_assist_by_label( | 214 | check_assist_by_label( |
@@ -262,111 +234,7 @@ mod tests { | |||
262 | } | 234 | } |
263 | 235 | ||
264 | #[test] | 236 | #[test] |
265 | fn convert_small_decimal_integer_with_underscores() { | 237 | fn convert_integer_with_suffix() { |
266 | let before = "const _: i32 = 1_0<|>;"; | ||
267 | |||
268 | check_assist_by_label( | ||
269 | convert_integer_literal, | ||
270 | before, | ||
271 | "const _: i32 = 0b1010;", | ||
272 | "Convert 1_0 to 0b1010", | ||
273 | ); | ||
274 | |||
275 | check_assist_by_label( | ||
276 | convert_integer_literal, | ||
277 | before, | ||
278 | "const _: i32 = 0o12;", | ||
279 | "Convert 1_0 to 0o12", | ||
280 | ); | ||
281 | |||
282 | check_assist_by_label( | ||
283 | convert_integer_literal, | ||
284 | before, | ||
285 | "const _: i32 = 0xA;", | ||
286 | "Convert 1_0 to 0xA", | ||
287 | ); | ||
288 | } | ||
289 | |||
290 | #[test] | ||
291 | fn convert_hexadecimal_integer_with_underscores() { | ||
292 | let before = "const _: i32 = 0x_F_F<|>;"; | ||
293 | |||
294 | check_assist_by_label( | ||
295 | convert_integer_literal, | ||
296 | before, | ||
297 | "const _: i32 = 0b11111111;", | ||
298 | "Convert 0x_F_F to 0b11111111", | ||
299 | ); | ||
300 | |||
301 | check_assist_by_label( | ||
302 | convert_integer_literal, | ||
303 | before, | ||
304 | "const _: i32 = 0o377;", | ||
305 | "Convert 0x_F_F to 0o377", | ||
306 | ); | ||
307 | |||
308 | check_assist_by_label( | ||
309 | convert_integer_literal, | ||
310 | before, | ||
311 | "const _: i32 = 255;", | ||
312 | "Convert 0x_F_F to 255", | ||
313 | ); | ||
314 | } | ||
315 | |||
316 | #[test] | ||
317 | fn convert_binary_integer_with_underscores() { | ||
318 | let before = "const _: i32 = 0b1111_1111<|>;"; | ||
319 | |||
320 | check_assist_by_label( | ||
321 | convert_integer_literal, | ||
322 | before, | ||
323 | "const _: i32 = 0o377;", | ||
324 | "Convert 0b1111_1111 to 0o377", | ||
325 | ); | ||
326 | |||
327 | check_assist_by_label( | ||
328 | convert_integer_literal, | ||
329 | before, | ||
330 | "const _: i32 = 255;", | ||
331 | "Convert 0b1111_1111 to 255", | ||
332 | ); | ||
333 | |||
334 | check_assist_by_label( | ||
335 | convert_integer_literal, | ||
336 | before, | ||
337 | "const _: i32 = 0xFF;", | ||
338 | "Convert 0b1111_1111 to 0xFF", | ||
339 | ); | ||
340 | } | ||
341 | |||
342 | #[test] | ||
343 | fn convert_octal_integer_with_underscores() { | ||
344 | let before = "const _: i32 = 0o3_77<|>;"; | ||
345 | |||
346 | check_assist_by_label( | ||
347 | convert_integer_literal, | ||
348 | before, | ||
349 | "const _: i32 = 0b11111111;", | ||
350 | "Convert 0o3_77 to 0b11111111", | ||
351 | ); | ||
352 | |||
353 | check_assist_by_label( | ||
354 | convert_integer_literal, | ||
355 | before, | ||
356 | "const _: i32 = 255;", | ||
357 | "Convert 0o3_77 to 255", | ||
358 | ); | ||
359 | |||
360 | check_assist_by_label( | ||
361 | convert_integer_literal, | ||
362 | before, | ||
363 | "const _: i32 = 0xFF;", | ||
364 | "Convert 0o3_77 to 0xFF", | ||
365 | ); | ||
366 | } | ||
367 | |||
368 | #[test] | ||
369 | fn convert_decimal_integer_with_suffix() { | ||
370 | let before = "const _: i32 = 1000i32<|>;"; | 238 | let before = "const _: i32 = 1000i32<|>;"; |
371 | 239 | ||
372 | check_assist_by_label( | 240 | check_assist_by_label( |
@@ -392,240 +260,6 @@ mod tests { | |||
392 | } | 260 | } |
393 | 261 | ||
394 | #[test] | 262 | #[test] |
395 | fn convert_small_decimal_integer_with_suffix() { | ||
396 | let before = "const _: i32 = 10i32<|>;"; | ||
397 | |||
398 | check_assist_by_label( | ||
399 | convert_integer_literal, | ||
400 | before, | ||
401 | "const _: i32 = 0b1010i32;", | ||
402 | "Convert 10i32 to 0b1010i32", | ||
403 | ); | ||
404 | |||
405 | check_assist_by_label( | ||
406 | convert_integer_literal, | ||
407 | before, | ||
408 | "const _: i32 = 0o12i32;", | ||
409 | "Convert 10i32 to 0o12i32", | ||
410 | ); | ||
411 | |||
412 | check_assist_by_label( | ||
413 | convert_integer_literal, | ||
414 | before, | ||
415 | "const _: i32 = 0xAi32;", | ||
416 | "Convert 10i32 to 0xAi32", | ||
417 | ); | ||
418 | } | ||
419 | |||
420 | #[test] | ||
421 | fn convert_hexadecimal_integer_with_suffix() { | ||
422 | let before = "const _: i32 = 0xFFi32<|>;"; | ||
423 | |||
424 | check_assist_by_label( | ||
425 | convert_integer_literal, | ||
426 | before, | ||
427 | "const _: i32 = 0b11111111i32;", | ||
428 | "Convert 0xFFi32 to 0b11111111i32", | ||
429 | ); | ||
430 | |||
431 | check_assist_by_label( | ||
432 | convert_integer_literal, | ||
433 | before, | ||
434 | "const _: i32 = 0o377i32;", | ||
435 | "Convert 0xFFi32 to 0o377i32", | ||
436 | ); | ||
437 | |||
438 | check_assist_by_label( | ||
439 | convert_integer_literal, | ||
440 | before, | ||
441 | "const _: i32 = 255i32;", | ||
442 | "Convert 0xFFi32 to 255i32", | ||
443 | ); | ||
444 | } | ||
445 | |||
446 | #[test] | ||
447 | fn convert_binary_integer_with_suffix() { | ||
448 | let before = "const _: i32 = 0b11111111i32<|>;"; | ||
449 | |||
450 | check_assist_by_label( | ||
451 | convert_integer_literal, | ||
452 | before, | ||
453 | "const _: i32 = 0o377i32;", | ||
454 | "Convert 0b11111111i32 to 0o377i32", | ||
455 | ); | ||
456 | |||
457 | check_assist_by_label( | ||
458 | convert_integer_literal, | ||
459 | before, | ||
460 | "const _: i32 = 255i32;", | ||
461 | "Convert 0b11111111i32 to 255i32", | ||
462 | ); | ||
463 | |||
464 | check_assist_by_label( | ||
465 | convert_integer_literal, | ||
466 | before, | ||
467 | "const _: i32 = 0xFFi32;", | ||
468 | "Convert 0b11111111i32 to 0xFFi32", | ||
469 | ); | ||
470 | } | ||
471 | |||
472 | #[test] | ||
473 | fn convert_octal_integer_with_suffix() { | ||
474 | let before = "const _: i32 = 0o377i32<|>;"; | ||
475 | |||
476 | check_assist_by_label( | ||
477 | convert_integer_literal, | ||
478 | before, | ||
479 | "const _: i32 = 0b11111111i32;", | ||
480 | "Convert 0o377i32 to 0b11111111i32", | ||
481 | ); | ||
482 | |||
483 | check_assist_by_label( | ||
484 | convert_integer_literal, | ||
485 | before, | ||
486 | "const _: i32 = 255i32;", | ||
487 | "Convert 0o377i32 to 255i32", | ||
488 | ); | ||
489 | |||
490 | check_assist_by_label( | ||
491 | convert_integer_literal, | ||
492 | before, | ||
493 | "const _: i32 = 0xFFi32;", | ||
494 | "Convert 0o377i32 to 0xFFi32", | ||
495 | ); | ||
496 | } | ||
497 | |||
498 | #[test] | ||
499 | fn convert_decimal_integer_with_underscores_and_suffix() { | ||
500 | let before = "const _: i32 = 1_00_0i32<|>;"; | ||
501 | |||
502 | check_assist_by_label( | ||
503 | convert_integer_literal, | ||
504 | before, | ||
505 | "const _: i32 = 0b1111101000i32;", | ||
506 | "Convert 1_00_0i32 to 0b1111101000i32", | ||
507 | ); | ||
508 | |||
509 | check_assist_by_label( | ||
510 | convert_integer_literal, | ||
511 | before, | ||
512 | "const _: i32 = 0o1750i32;", | ||
513 | "Convert 1_00_0i32 to 0o1750i32", | ||
514 | ); | ||
515 | |||
516 | check_assist_by_label( | ||
517 | convert_integer_literal, | ||
518 | before, | ||
519 | "const _: i32 = 0x3E8i32;", | ||
520 | "Convert 1_00_0i32 to 0x3E8i32", | ||
521 | ); | ||
522 | } | ||
523 | |||
524 | #[test] | ||
525 | fn convert_small_decimal_integer_with_underscores_and_suffix() { | ||
526 | let before = "const _: i32 = 1_0i32<|>;"; | ||
527 | |||
528 | check_assist_by_label( | ||
529 | convert_integer_literal, | ||
530 | before, | ||
531 | "const _: i32 = 0b1010i32;", | ||
532 | "Convert 1_0i32 to 0b1010i32", | ||
533 | ); | ||
534 | |||
535 | check_assist_by_label( | ||
536 | convert_integer_literal, | ||
537 | before, | ||
538 | "const _: i32 = 0o12i32;", | ||
539 | "Convert 1_0i32 to 0o12i32", | ||
540 | ); | ||
541 | |||
542 | check_assist_by_label( | ||
543 | convert_integer_literal, | ||
544 | before, | ||
545 | "const _: i32 = 0xAi32;", | ||
546 | "Convert 1_0i32 to 0xAi32", | ||
547 | ); | ||
548 | } | ||
549 | |||
550 | #[test] | ||
551 | fn convert_hexadecimal_integer_with_underscores_and_suffix() { | ||
552 | let before = "const _: i32 = 0x_F_Fi32<|>;"; | ||
553 | |||
554 | check_assist_by_label( | ||
555 | convert_integer_literal, | ||
556 | before, | ||
557 | "const _: i32 = 0b11111111i32;", | ||
558 | "Convert 0x_F_Fi32 to 0b11111111i32", | ||
559 | ); | ||
560 | |||
561 | check_assist_by_label( | ||
562 | convert_integer_literal, | ||
563 | before, | ||
564 | "const _: i32 = 0o377i32;", | ||
565 | "Convert 0x_F_Fi32 to 0o377i32", | ||
566 | ); | ||
567 | |||
568 | check_assist_by_label( | ||
569 | convert_integer_literal, | ||
570 | before, | ||
571 | "const _: i32 = 255i32;", | ||
572 | "Convert 0x_F_Fi32 to 255i32", | ||
573 | ); | ||
574 | } | ||
575 | |||
576 | #[test] | ||
577 | fn convert_binary_integer_with_underscores_and_suffix() { | ||
578 | let before = "const _: i32 = 0b1111_1111i32<|>;"; | ||
579 | |||
580 | check_assist_by_label( | ||
581 | convert_integer_literal, | ||
582 | before, | ||
583 | "const _: i32 = 0o377i32;", | ||
584 | "Convert 0b1111_1111i32 to 0o377i32", | ||
585 | ); | ||
586 | |||
587 | check_assist_by_label( | ||
588 | convert_integer_literal, | ||
589 | before, | ||
590 | "const _: i32 = 255i32;", | ||
591 | "Convert 0b1111_1111i32 to 255i32", | ||
592 | ); | ||
593 | |||
594 | check_assist_by_label( | ||
595 | convert_integer_literal, | ||
596 | before, | ||
597 | "const _: i32 = 0xFFi32;", | ||
598 | "Convert 0b1111_1111i32 to 0xFFi32", | ||
599 | ); | ||
600 | } | ||
601 | |||
602 | #[test] | ||
603 | fn convert_octal_integer_with_underscores_and_suffix() { | ||
604 | let before = "const _: i32 = 0o3_77i32<|>;"; | ||
605 | |||
606 | check_assist_by_label( | ||
607 | convert_integer_literal, | ||
608 | before, | ||
609 | "const _: i32 = 0b11111111i32;", | ||
610 | "Convert 0o3_77i32 to 0b11111111i32", | ||
611 | ); | ||
612 | |||
613 | check_assist_by_label( | ||
614 | convert_integer_literal, | ||
615 | before, | ||
616 | "const _: i32 = 255i32;", | ||
617 | "Convert 0o3_77i32 to 255i32", | ||
618 | ); | ||
619 | |||
620 | check_assist_by_label( | ||
621 | convert_integer_literal, | ||
622 | before, | ||
623 | "const _: i32 = 0xFFi32;", | ||
624 | "Convert 0o3_77i32 to 0xFFi32", | ||
625 | ); | ||
626 | } | ||
627 | |||
628 | #[test] | ||
629 | fn convert_overflowing_literal() { | 263 | fn convert_overflowing_literal() { |
630 | let before = "const _: i32 = | 264 | let before = "const _: i32 = |
631 | 111111111111111111111111111111111111111111111111111111111111111111111111<|>;"; | 265 | 111111111111111111111111111111111111111111111111111111111111111111111111<|>;"; |