rspec/rules/S134/rpg/rule.adoc
2021-02-02 16:54:43 +01:00

32 lines
592 B
Plaintext

Nested ``++CASxx++``, ``++DO++``, ``++DOU++``, ``++DOW++``, ``++DOUxx++``, ``++DOWxx++``, ``++FOR++``, ``++IF++``, ``++IFxx++``, ``++MONITOR++`` and ``++SELECT++`` statements is a key ingredient for making what's known as "Spaghetti code".
Such code is hard to read, refactor and therefore maintain.
== Noncompliant Code Example
With the default threshold of 3:
----
IF A <> B
IF B <> C
DOW B <> A
IF A <> D
...
ENDIF
ENDDO
ENDIF
ENDIF
----
----
if a <> b;
if b <> c;
dow b <> a;
if a <> d;
...
endif;
enddo;
endif;
endif;
----