@@ -165,16 +165,14 @@ private Description analyzeIfTree(IfTree ifTree, VisitorState state) {
165165 }
166166 }
167167
168- List <SuggestedFix > suggestedFixes = new ArrayList <>();
169- if (ifChainAnalysisState .validity ().equals (Validity .VALID )
168+ if (!ifChainAnalysisState .validity ().equals (Validity .VALID )
170169 // Exclude short if-chains, since they may be more readable as-is
171- && ifChainAnalysisState .depth () >= 3 ) {
172-
173- suggestedFixes =
174- deepAnalysisOfIfChain (
175- cases , ifChainAnalysisState , ifTree , state , ifTreeSourceRange , suggestedFixes );
170+ || ifChainAnalysisState .depth () < 3 ) {
171+ return NO_MATCH ;
176172 }
177173
174+ List <SuggestedFix > suggestedFixes =
175+ deepAnalysisOfIfChain (cases , ifChainAnalysisState , ifTree , state , ifTreeSourceRange );
178176 return suggestedFixes .isEmpty ()
179177 ? NO_MATCH
180178 : buildDescription (ifTree ).addAllFixes (suggestedFixes ).build ();
@@ -1290,8 +1288,7 @@ private static List<SuggestedFix> deepAnalysisOfIfChain(
12901288 IfChainAnalysisState finalIfChainAnalysisState ,
12911289 IfTree ifTree ,
12921290 VisitorState state ,
1293- Range <Integer > ifTreeSourceRange ,
1294- List <SuggestedFix > suggestedFixes ) {
1291+ Range <Integer > ifTreeSourceRange ) {
12951292
12961293 // Wrapping break/yield in a switch can potentially change its semantics. A deeper analysis of
12971294 // whether semantics are preserved is not attempted here
@@ -1359,20 +1356,22 @@ private static List<SuggestedFix> deepAnalysisOfIfChain(
13591356 ifTreeSourceRange ));
13601357 }
13611358
1362- return maybeBuildAndAddSuggestedFix (
1359+ List <SuggestedFix > suggestedFixes = new ArrayList <>();
1360+ maybeBuildAndAddSuggestedFix (
13631361 fixedCasesOptional ,
13641362 pullupDisabled ? suggestedFixBuilderWithoutPullup : suggestedFixBuilderWithPullupEnabled ,
13651363 finalIfChainAnalysisState ,
13661364 ifTree ,
13671365 state ,
13681366 ifTreeSourceRange ,
13691367 suggestedFixes );
1368+ return suggestedFixes ;
13701369 }
13711370
13721371 /**
13731372 * If a finding is available, build a {@code SuggestedFix} for it and add to the suggested fixes.
13741373 */
1375- private static List < SuggestedFix > maybeBuildAndAddSuggestedFix (
1374+ private static void maybeBuildAndAddSuggestedFix (
13761375 Optional <List <CaseIr >> fixedCasesOptional ,
13771376 SuggestedFix .Builder suggestedFixBuilder ,
13781377 IfChainAnalysisState ifChainAnalysisState ,
@@ -1398,13 +1397,8 @@ private static List<SuggestedFix> maybeBuildAndAddSuggestedFix(
13981397 ifTreeSourceRange ,
13991398 allComments ));
14001399
1401- // Defensive copy
1402- List <SuggestedFix > suggestedFixesCopy = new ArrayList <>(suggestedFixes );
1403- suggestedFixesCopy .add (suggestedFixBuilder .build ());
1404- suggestedFixes = suggestedFixesCopy ;
1400+ suggestedFixes .add (suggestedFixBuilder .build ());
14051401 }
1406-
1407- return suggestedFixes ;
14081402 }
14091403
14101404 /**
0 commit comments