
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.
59 lines
1.2 KiB
Plaintext
59 lines
1.2 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Having all branches in a ``++Select Case++`` or ``++If++`` chain with the same implementation is an error. Either a copy-paste error was made and something different should be executed, or there shouldn't be a ``++Select Case++`` / ``++If++`` chain at all.
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,vbnet]
|
|
----
|
|
Dim b As Integer = If(a > 12, 4, 4)
|
|
|
|
If b = 0 Then
|
|
DoTheThing()
|
|
Else
|
|
DoTheThing()
|
|
End If
|
|
|
|
Select Case i
|
|
Case 1
|
|
DoSomething()
|
|
Case 2
|
|
DoSomething()
|
|
Case 3
|
|
DoSomething()
|
|
Case Else
|
|
DoSomething()
|
|
End Select
|
|
----
|
|
|
|
=== Exceptions
|
|
|
|
This rule does not apply to ``++If++`` chains without ``++Else++``-s, or to ``++Select Case++``-es without ``++Case Else++`` clauses.
|
|
|
|
|
|
[source,vbnet]
|
|
----
|
|
If b = 0 Then ' No issue, this could have been done on purpose to make the code more readable
|
|
DoTheThing()
|
|
ElseIf
|
|
DoTheThing()
|
|
End If
|
|
----
|
|
|
|
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[]
|