
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Nested ``++if++``, ``++for++``, ``++while++``, ``++try++``, and ``++with++`` statements are key ingredients for making what's known as "Spaghetti code". Such code is hard to read, refactor and therefore maintain.
|
|
|
|
=== Noncompliant code example
|
|
|
|
The following code snippet illustrates this rule with the default threshold of 3.
|
|
|
|
[source,python]
|
|
----
|
|
if condition1: # Compliant - depth = 1
|
|
# ...
|
|
if condition2: # Compliant - depth = 2
|
|
# ...
|
|
for i in range(10): # Compliant - depth = 3, not exceeding the limit
|
|
# ...
|
|
if condition4: # Non-Compliant - depth = 4
|
|
if condition5: # Depth = 5, exceeding the limit, but issues are only reported on depth = 4
|
|
# ...
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
=== Parameters
|
|
|
|
.max
|
|
****
|
|
_Integer_
|
|
|
|
----
|
|
4
|
|
----
|
|
|
|
Maximum allowed control flow statement nesting depth.
|
|
****
|
|
|
|
|
|
include::../highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|