rspec/rules/S1186/csharp/rule.adoc
Fred Tingaud 16f6c0aecf
Inline adoc when include has no additional value (#1940)
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.
2023-05-25 14:18:12 +02:00

86 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== Why is this an issue?
There are several reasons for a method not to have a method body:
* It is an unintentional omission, and should be fixed.
* It is not yet, or never will be, supported. In this case a ``++NotSupportedException++`` should be thrown.
* The method is an intentionally-blank override. In this case a nested comment should explain the reason for the blank override.
=== Noncompliant code example
[source,csharp]
----
public override void DoSomething()
{
}
public override void DoSomethingElse()
{
}
----
=== Compliant solution
[source,csharp]
----
public override void DoSomething()
{
// Do nothing because of X and Y.
}
public override void DoSomethingElse()
{
throw new NotSupportedException();
}
----
=== Exceptions
The following methods are ignored:
* empty ``++virtual++`` methods,
* empty methods that override an ``++abstract++`` method,
* empty overrides in test assemblies.
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
'''
== Comments And Links
(visible only on this page)
=== on 11 Nov 2020, 19:45:36 Andrei Epure wrote:
\[~nicolas.harraudeau] I believe this rule could also apply to local functions and to property setters, right?
 
----
public void Method()
{
void EmptyLocalFunction {} // Noncompliant
}
public int Property
{
set {} // Noncompliant
}
{code}
----
=== on 16 Nov 2020, 14:19:07 Nicolas Harraudeau wrote:
\[~andrei.epure] Yes. We already do it for nested functions in python. I don't see any reason to not do the same for C#.
=== on 16 Nov 2020, 17:39:11 Andrei Epure wrote:
thanks. I opened \https://github.com/SonarSource/sonar-dotnet/issues/3753 for this.
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]