@@ -396,4 +396,264 @@ String getString() {
396396 )
397397 );
398398 }
399+
400+ @ Test
401+ void inlineAssignmentToParameter () {
402+ rewriteRun (
403+ //language=java
404+ java (
405+ """
406+ class Test {
407+ String test(String param) {
408+ param = toString();
409+ return param;
410+ }
411+ }
412+ """ ,
413+ """
414+ class Test {
415+ String test(String param) {
416+ return toString();
417+ }
418+ }
419+ """
420+ )
421+ );
422+ }
423+
424+ @ Test
425+ void inlineMultipleAssignmentsBeforeReturn () {
426+ rewriteRun (
427+ //language=java
428+ java (
429+ """
430+ class Test {
431+ String test() {
432+ String variable = null;
433+ variable = toString();
434+ return variable;
435+ }
436+ }
437+ """ ,
438+ """
439+ class Test {
440+ String test() {
441+ String variable = null;
442+ return toString();
443+ }
444+ }
445+ """
446+ )
447+ );
448+ }
449+
450+ @ Test
451+ void inlineAssignmentWithMethodCall () {
452+ rewriteRun (
453+ //language=java
454+ java (
455+ """
456+ class Test {
457+ String spy() { return "spy"; }
458+
459+ String test() {
460+ String variable = spy();
461+ return variable;
462+ }
463+ }
464+ """ ,
465+ """
466+ class Test {
467+ String spy() { return "spy"; }
468+
469+ String test() {
470+ return spy();
471+ }
472+ }
473+ """
474+ )
475+ );
476+ }
477+
478+ @ Test
479+ void inlineAssignmentInElseBlockWhilePreservingIfBlock () {
480+ rewriteRun (
481+ //language=java
482+ java (
483+ """
484+ class Test {
485+ String test(boolean condition) {
486+ String variable = toString();
487+ if (condition) {
488+ return variable;
489+ } else {
490+ variable = "foo";
491+ return variable;
492+ }
493+ }
494+ }
495+ """ ,
496+ """
497+ class Test {
498+ String test(boolean condition) {
499+ String variable = toString();
500+ if (condition) {
501+ return variable;
502+ } else {
503+ return "foo";
504+ }
505+ }
506+ }
507+ """
508+ )
509+ );
510+ }
511+
512+ @ Test
513+ void inlineVariableInElseBlock () {
514+ rewriteRun (
515+ //language=java
516+ java (
517+ """
518+ class Test {
519+ String test(boolean condition) {
520+ if (condition) {
521+ return "bar";
522+ } else {
523+ String variable = "foo";
524+ return variable;
525+ }
526+ }
527+ }
528+ """ ,
529+ """
530+ class Test {
531+ String test(boolean condition) {
532+ if (condition) {
533+ return "bar";
534+ } else {
535+ return "foo";
536+ }
537+ }
538+ }
539+ """
540+ )
541+ );
542+ }
543+
544+ @ Test
545+ void inlineAssignmentInTryBlock () {
546+ rewriteRun (
547+ //language=java
548+ java (
549+ """
550+ class Test {
551+ String test() {
552+ try {
553+ String result = someMethod();
554+ return result;
555+ } catch (Exception e) {
556+ return null;
557+ }
558+ }
559+
560+ String someMethod() throws Exception {
561+ return "value";
562+ }
563+ }
564+ """ ,
565+ """
566+ class Test {
567+ String test() {
568+ try {
569+ return someMethod();
570+ } catch (Exception e) {
571+ return null;
572+ }
573+ }
574+
575+ String someMethod() throws Exception {
576+ return "value";
577+ }
578+ }
579+ """
580+ )
581+ );
582+ }
583+
584+ @ Test
585+ void inlineVariableWithCast () {
586+ rewriteRun (
587+ //language=java
588+ java (
589+ """
590+ class Test {
591+ Object test() {
592+ String str = (String) getObject();
593+ return str;
594+ }
595+
596+ Object getObject() {
597+ return "string";
598+ }
599+ }
600+ """ ,
601+ """
602+ class Test {
603+ Object test() {
604+ return (String) getObject();
605+ }
606+
607+ Object getObject() {
608+ return "string";
609+ }
610+ }
611+ """
612+ )
613+ );
614+ }
615+
616+ @ Test
617+ void inlineVariableWithTernary () {
618+ rewriteRun (
619+ //language=java
620+ java (
621+ """
622+ class Test {
623+ String test(boolean flag) {
624+ String result = flag ? "yes" : "no";
625+ return result;
626+ }
627+ }
628+ """ ,
629+ """
630+ class Test {
631+ String test(boolean flag) {
632+ return flag ? "yes" : "no";
633+ }
634+ }
635+ """
636+ )
637+ );
638+ }
639+
640+ @ Test
641+ void doNotInlineWhenVariableIsReassigned () {
642+ rewriteRun (
643+ //language=java
644+ java (
645+ """
646+ class Test {
647+ String test(boolean condition) {
648+ String result = "initial";
649+ if (condition) {
650+ result = "changed";
651+ }
652+ return result;
653+ }
654+ }
655+ """
656+ )
657+ );
658+ }
399659}
0 commit comments