Having inconsistent indentation and omitting BEGIN…END
from a control structure, such as an IF
statement or
WHILE
loop, is misleading and can induce bugs.
This rule raises an issue when the indentation of the lines after a control structure indicates an intent to include those lines in the block, but
the omission of BEGIN…END
means the lines will be unconditionally executed once.
The following patterns are recognized:
IF (0=1)
EXEC firstActionInBlock;
EXEC secondAction; -- Noncompliant: secondAction is executed unconditionally
EXEC thirdAction;
IF (0=1) EXEC firstActionInBlock; EXEC secondAction; -- Noncompliant: secondAction is executed unconditionally
IF (0=1) EXEC firstActionInBlock;
EXEC secondAction; -- Noncompliant: secondAction is executed unconditionally
Note that this rule considers tab characters to be equivalent to 1 space. When mixing spaces and tabs, a code may look fine in one editor but be
confusing in another configured differently.