Having all branches of an EVALUATE
or IF
chain with the same implementation indicates a problem.
In the following code:
EVALUATE X *> Noncompliant
WHEN 1
PERFORM SECTION1
WHEN OTHER
PERFORM SECTION1
END-EVALUATE.
IF X = 1 THEN *> Noncompliant
PERFORM SECTION1
ELSE
PERFORM SECTION1
END-IF.
Either there is a copy-paste error that needs fixing or an unnecessary EVALUATE
or IF
chain that needs removing.
Exceptions
This rule does not apply to IF
chains without ELSE
, nor to EVALUATE
without a WHEN OTHER
clause.
IF X = 1 THEN *> //no issue, this could have been done on purpose to make the code more readable
PERFORM SECTION1
ELSE-IF X = 2 THEN
PERFORM SECTION1
END-IF.