
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.
66 lines
1.2 KiB
Plaintext
66 lines
1.2 KiB
Plaintext
== Why is this an issue?
|
|
|
|
include::../description.adoc[]
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,go]
|
|
----
|
|
switch i {
|
|
case 1:
|
|
doFirstThing()
|
|
doSomething()
|
|
case 2:
|
|
doSomethingElse()
|
|
case 3: // Noncompliant; duplicates case 1's implementation
|
|
doFirstThing()
|
|
doSomething()
|
|
default:
|
|
doTheRest()
|
|
}
|
|
|
|
if a >= 0 && a < 10 {
|
|
doFirstThing()
|
|
doSomething()
|
|
} else if a >= 10 && a < 20 {
|
|
doSomethingElse()
|
|
} else if a >= 20 && a < 50 {
|
|
doFirstThing()
|
|
doSomething() // Noncompliant; duplicates first condition
|
|
} else {
|
|
doTheRest()
|
|
}
|
|
----
|
|
|
|
=== Exceptions
|
|
|
|
Blocks in an ``++if++`` chain or ``++case++`` blocks that contain a single line of code are ignored.
|
|
|
|
[source,go]
|
|
----
|
|
if a == 1 {
|
|
doSomething() //no issue, usually this is done on purpose to increase the readability
|
|
} else if a == 2 {
|
|
doSomethingElse()
|
|
} else {
|
|
doSomething()
|
|
}
|
|
----
|
|
|
|
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[]
|