rspec/rules/S2387/vbnet/rule.adoc
Fred Tingaud 51369b610e
Make sure that includes are always surrounded by empty lines (#2270)
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.
2023-06-22 10:38:01 +02:00

99 lines
1.7 KiB
Plaintext

== Why is this an issue?
include::../description.adoc[]
=== Noncompliant code example
[source,vbnet]
----
Public Class Fruit
Protected Ripe As Season
Protected Flesh As Color
' ...
End Class
Public Class Raspberry
Inherits Fruit
Private Ripe As Boolean ' Noncompliant
Private Shared FLESH As Color ' Noncompliant
' ...
End Class
----
=== Compliant solution
[source,vbnet]
----
Public Class Fruit
Protected Ripe As Season
Protected Flesh As Color
' ...
End Class
Public Class Raspberry
Inherits Fruit
Private Riped As Boolean
Private Shared FLESH_COLOR As Color ' Noncompliant
' ...
End Class
----
=== Exceptions
This rule ignores same-name fields that are ``++Shared++`` in both the parent and child classes. It also ignores ``++Private++`` parent class fields and fields explicitly declared as ``++Shadows++``, but in all other such cases, the child class field should be renamed.
[source,vbnet]
----
Public Class Fruit
Private Ripe As Season
Protected Flesh As Color
' ...
End Class
Public Class Raspberry
Inherits Fruit
Private Ripe As Season ' Compliant as parent field 'Ripe' is not visible from Raspberry anyway
Protected Shadows Flesh As Color ' Compliant as the intention is explicitly declared
' ...
End Class
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
* "xxx" is the name of a member in "yyy".
* "xxx" differs only by case from "XXX" in "yyy".
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]