Reports switch statements with duplicate case clause test expressions.
✅ This rule is included in the ts logical and logicalStrict presets.
Duplicate case clauses in a switch statement represent a logic error where the second occurrence of a case will never be executed.
When multiple case clauses have identical test expressions, only the first matching case is executed, making subsequent duplicates unreachable code.
This typically indicates a copy-paste error or incomplete refactoring.
AEfuncti5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0getStat3 sp>1<1(sp ansty="le--0:#D7DBE0;--1:#403F">53co1(sp>7<2:sp ansty="le--0:#D6DEEB;--1:#403F">52:sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0numb3 sp>1<1)sp ansty="le--0:#7FDBCA;--1:#096E">71)sp><2:sp ansty="le--0:#D6DEEB;--1:#403F">52:sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0stri3 sp>53< {d ivclassNa="meec-li">nt< sp ansty="le--0:#C792EA;--1:#8844">AEswit sp>53 (code) {d>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#F78C6C;--1:#AA09">8223 sp><00sp ansty="le--0:#D6DEEB;--1:#403F">500sp> {d><3:d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEretu sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4D1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp>3:d><3;d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#F78C6C;--1:#AA09">8243 sp><04sp ansty="le--0:#D6DEEB;--1:#403F">504sp>3;d><3:d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEretu sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4DNot Fou1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp>3:d><3;d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#F78C6C;--1:#AA09">8223 sp><00sp ansty="le--0:#D6DEEB;--1:#403F">500sp>3;d><3:d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEretu sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4DSucce1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><; sp ansty="le--0:#919F9F;--1:#5D63">76// This case will never be reach; sp>3:d>53< sp ansty="le--0:#D6DEEB;--1:#403F">5 sp><3}d ivclassNa="meec-li">53}d><3}d ivclassNa="meco"><}d>}d>3}d>AEfuncti5<3 sp ansty="le--0:#82AAFF;--1:#3B61">B0handleInp3 sp>1<1(sp ansty="le--0:#D7DBE0;--1:#403F">53val1(sp>7<2:sp ansty="le--0:#D6DEEB;--1:#403F">52:sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0stri3 sp>1<1)sp ansty="le--0:#7FDBCA;--1:#096E">71)sp><2:sp ansty="le--0:#D6DEEB;--1:#403F">52:sp><3 sp ansty="le--0:#C5E478;--1:#3B61">B0vo3 sp>53< {d ivclassNa="meec-li">nt< sp ansty="le--0:#C792EA;--1:#8844">AEswit sp>53 (value) {d>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dsta1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp> {d><3:d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53conso sp>AB0l5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4DStarting proce1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp>3:d><);d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEbre sp>5);d><3;d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dst1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp>3;d><3:d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53conso sp>AB0l5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4DStopping proce1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp>3:d><);d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEbre sp>5);d><3;d ivclassNa="meec-li">nt < sp ansty="le--0:#C792EA;--1:#8844">AEca sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dsta1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp>3;d><3:d ivclassNa="meec-li">53 < sp ansty="le--0:#D6DEEB;--1:#403F">53conso sp>AB0l5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4DBegin operati1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">53)1"sp><; sp ansty="le--0:#919F9F;--1:#5D63">76// This case will never be reach; sp>3:d>nt < sp ansty="le--0:#C792EA;--1:#8844">AEbre sp>5<3;d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">5 sp>3;d><3}d ivclassNa="meec-li">53}d><3}d ivclassNa="meco"><}d>}d>3}d> 44AEfunc361B0getSt1<111( spans="tyle--0:#D7DBE0;--1:#40">3F53111(>6361B0nu1<111) spans="tyle--0:#7FDBCA;--1:#09">6111)>361B0st3F<53 {divclass="Nameec-">de44AEsw3F53 (cod53 >dent< spans="tyle--0:#C792EA;--1:#88">44AE >3098<2200 spans="tyle--0:#D6DEEB;--1:#40">32200>dent < spans="tyle--0:#C792EA;--1:#88">44AEre >31<111" spans="tyle--0:#ECC48D;--1:#98">4E111"><4DOK spans="tyle--0:#D9F5DD;--1:#11">14DOK><111" spans="tyle--0:#D6DEEB;--1:#40">3111">dent< spans="tyle--0:#C792EA;--1:#88">44AE >3098<2201 spans="tyle--0:#D6DEEB;--1:#40">32201>dent < spans="tyle--0:#C792EA;--1:#88">44AEre >31<111" spans="tyle--0:#ECC48D;--1:#98">4E4DCre111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">dent< spans="tyle--0:#C792EA;--1:#88">44AE >3098<2404 spans="tyle--0:#D6DEEB;--1:#40">32404>dent < spans="tyle--0:#C792EA;--1:#88">44AEre >31<111" spans="tyle--0:#ECC48D;--1:#98">4E4DNot F111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">3F<53 spans="tyle--0:#D6DEEB;--1:#40">353 >3< }> }><}di vdivclass="Nameexpressive-">44AEfunc361B0handleI1<111( spans="tyle--0:#D7DBE0;--1:#40">3F53v111(>6361B0st1<111) spans="tyle--0:#7FDBCA;--1:#09">6111)>361B03F<53 {divclass="Nameec-">de44AEsw3F53 (valu53 >dent< spans="tyle--0:#C792EA;--1:#88">44AE >31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Ds111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53con >4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B4AE.><0log spans="tyle--0:#D6DEEB;--1:#40">30log>1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DStarting pro111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53) ;divclass="Nameec-">dent < spans="tyle--0:#C792EA;--1:#88">44AEb >353)>dent< spans="tyle--0:#C792EA;--1:#88">44AE >31<111" spans="tyle--0:#ECC48D;--1:#98">4E4D111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53con >4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B4AE.><0log spans="tyle--0:#D6DEEB;--1:#40">30log>1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DStopping pro111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53) ;divclass="Nameec-">dent < spans="tyle--0:#C792EA;--1:#88">44AEb >353)>dent< spans="tyle--0:#C792EA;--1:#88">44AE >31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dres111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">3F53 < spans="tyle--0:#D6DEEB;--1:#40">3F53con >4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B4AE.><0log spans="tyle--0:#D6DEEB;--1:#40">30log>1<111" spans="tyle--0:#ECC48D;--1:#98">4E4DRestarting pro111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53) ;divclass="Nameec-">dent < spans="tyle--0:#C792EA;--1:#88">44AEb >353)>3F<53 spans="tyle--0:#D6DEEB;--1:#40">353 >3< }> }>}di>
This rule is not configurable.
If your project uses control flow structures that create confusing side effects, such as dynamic getters that modify state, you might not be able to enable this rule.
Consider refactoring to more predictable control flow structures.