55 lines
1.4 KiB
Plaintext
55 lines
1.4 KiB
Plaintext
== Why is this an issue?
|
|
|
|
When the line immediately after a conditional has neither an enclosing ``++BEGIN...END++`` block nor indentation, the intent of the code is unclear and perhaps not what is executed. Additionally, such code is confusing to maintainers.
|
|
|
|
[source,sql]
|
|
----
|
|
IF @condition -- Noncompliant
|
|
EXEC doTheThing;
|
|
EXEC doTheOtherThing; -- Was the intent to call this function unconditionally?
|
|
----
|
|
|
|
It becomes even more confusing and bug-prone if lines get commented out.
|
|
|
|
[source,sql]
|
|
----
|
|
IF @condition -- Noncompliant
|
|
-- EXEC doTheThing;
|
|
EXEC doTheOtherThing; -- Was the intent to call this function conditionally?
|
|
----
|
|
|
|
Indentation alone or together with ``++BEGIN...END++`` block makes the intent clear.
|
|
|
|
[source,sql]
|
|
----
|
|
IF @condition
|
|
EXEC doTheThing;
|
|
EXEC doTheOtherThing; -- Clear intent to call this function unconditionally
|
|
|
|
|
|
IF @condition
|
|
BEGIN
|
|
EXEC doTheThing;
|
|
END;
|
|
EXEC doTheOtherThing; -- Clear intent to call this function unconditionally
|
|
----
|
|
|
|
This rule raises an issue if the line controlled by a conditional has the same indentation as the conditional and is not enclosed in a ``++BEGIN...END++`` block.
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
include::../highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|