
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.
53 lines
1.0 KiB
Plaintext
53 lines
1.0 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Having the same implementation in every branch of an ``++if++`` chain is an error. Either a copy-paste error was made and something different should be executed, or there shouldn't be an ``++if++`` chain at all.
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,python]
|
|
----
|
|
if b == 0: # Noncompliant
|
|
doOneMoreThing()
|
|
elif b == 1:
|
|
doOneMoreThing()
|
|
else:
|
|
doOneMoreThing()
|
|
|
|
b = 4 if a > 12 else 4 # Noncompliant
|
|
----
|
|
|
|
=== Exceptions
|
|
|
|
This rule does not apply to ``++if++`` chains without ``++else++``-s.
|
|
|
|
|
|
[source,python]
|
|
----
|
|
if b == 0: # no issue, this could have been done on purpose to make the code more readable
|
|
doOneMoreThing()
|
|
elif b == 1:
|
|
doOneMoreThing()
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
=== Highlighting
|
|
|
|
primary: the top "if" keyword
|
|
|
|
secondary: each identical body of the "if-elif-else"
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|