@@ -72,21 +72,20 @@ const rule: Rule.RuleModule = {
7272 function visitSwitchStatement ( switchStmt : estree . SwitchStatement ) {
7373 const { cases } = switchStmt ;
7474 const { endsWithDefault } = collectSwitchBranches ( switchStmt ) ;
75- const nonEmptyCases = cases
76- . map ( c => takeWithoutBreak ( expandSingleBlockStatement ( c . consequent ) ) )
77- . filter ( c => c . length > 0 ) ;
75+ const nonEmptyCases = cases . filter ( c => takeWithoutBreak ( expandSingleBlockStatement ( c . consequent ) ) . length > 0 ) ;
76+ const casesWithoutBreak = nonEmptyCases . map ( c => takeWithoutBreak ( expandSingleBlockStatement ( c . consequent ) ) ) ;
7877
79- if ( allEquivalentWithoutDefault ( nonEmptyCases , endsWithDefault ) ) {
80- cases . slice ( 1 ) . forEach ( ( caseStmt , i ) => reportIssue ( caseStmt , cases [ i ] , "case" ) ) ;
78+ if ( allEquivalentWithoutDefault ( casesWithoutBreak , endsWithDefault ) ) {
79+ nonEmptyCases . slice ( 1 ) . forEach ( ( caseStmt , i ) => reportIssue ( caseStmt , nonEmptyCases [ i ] , "case" ) ) ;
8180 return ;
8281 }
8382
84- for ( let i = 1 ; i < nonEmptyCases . length ; i ++ ) {
85- const firstClauseWithoutBreak = nonEmptyCases [ i ] ;
83+ for ( let i = 1 ; i < cases . length ; i ++ ) {
84+ const firstClauseWithoutBreak = takeWithoutBreak ( expandSingleBlockStatement ( cases [ i ] . consequent ) ) ;
8685
8786 if ( hasRequiredSize ( firstClauseWithoutBreak ) ) {
8887 for ( let j = 0 ; j < i ; j ++ ) {
89- const secondClauseWithoutBreak = nonEmptyCases [ j ] ;
88+ const secondClauseWithoutBreak = takeWithoutBreak ( expandSingleBlockStatement ( cases [ j ] . consequent ) ) ;
9089
9190 if ( areEquivalent ( firstClauseWithoutBreak , secondClauseWithoutBreak , context . getSourceCode ( ) ) ) {
9291 reportIssue ( cases [ i ] , cases [ j ] , "case" ) ;
0 commit comments