
When an include is not surrounded by empty lines, its content is inlined on the same line as the adjacent content. That can lead to broken tags and other display issues. This PR fixes all such includes and introduces a validation step that forbids introducing the same problem again.
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
== Why is this an issue?
|
|
|
|
Because parameter names could be changed during refactoring, they should not be spelled out literally in strings. Instead, use ``++NameOf()++``, and the string that's output will always be correct.
|
|
|
|
|
|
This rule raises an issue when any string in the ``++Throw++`` statement is an exact match for the name of one of the method parameters.
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,vbnet]
|
|
----
|
|
Public Sub DoSomething(param As Integer, secondParam As String)
|
|
If (param < 0)
|
|
Throw New Exception("param") ' Noncompliant
|
|
End If
|
|
If secondParam is Nothing
|
|
Throw New Exception("secondParam should be valid") ' Noncompliant
|
|
End If
|
|
End Sub
|
|
----
|
|
|
|
=== Compliant solution
|
|
|
|
[source,vbnet]
|
|
----
|
|
Public Sub DoSomething(param As Integer, secondParam As String)
|
|
If (param < 0)
|
|
Throw New Exception(NameOf(param))
|
|
End If
|
|
If secondParam is Nothing
|
|
Throw New Exception($"{NameOf(secondParam)} should be valid")
|
|
End If
|
|
End Sub
|
|
----
|
|
|
|
=== Exceptions
|
|
|
|
* The rule doesn't raise any issue when using VB.NET < 14.0.
|
|
* When the parameter name is contained in a sentence inside the ``++Throw++`` statement string, the rule will raise an issue only if the parameter name is at least 5 characters long. This is to avoid false positives.
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|