-
Type:
Language-Specification
-
Status: Active
-
Resolution: Unresolved
-
Labels:None
-
Message:This condition duplicates the one on line n.
-
Impact:Unknown 'null' severity
-
Likelihood:Unknown 'null' severity
A CASE and a chain of IF/ELSE IF statements is evaluated from top to bottom. At most, only one branch will be executed: the first one with a condition that evaluates to true.
Therefore, duplicating a condition automatically leads to dead code. Usually, this is due to a copy/paste error. At best, it's simply dead code and at worst, it's a bug that is likely to induce further bugs as the code is maintained, and obviously it could lead to unexpected behavior.
Noncompliant Code Example
IF @x = 1 PRINT 'A' ELSE IF @x = 2 PRINT 'B' ELSE IF @x = 1 -- Noncompliant PRINT 'C' SELECT CASE col1 WHEN 1 THEN 'A' WHEN 2 THEN 'B' WHEN 1 -- Noncompliant THEN 'C' ELSE 'D' END FROM table1
Compliant Solution
IF @x = 1 PRINT 'A' ELSE IF @x = 2 PRINT 'B' ELSE IF @x = 3 PRINT 'C' SELECT CASE col1 WHEN 1 THEN 'A' WHEN 2 THEN 'B' WHEN 3 THEN 'C' ELSE 'D' END FROM table1