rspec/rules/S3060/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

38 lines
888 B
Plaintext

== Why is this an issue?
There's no valid reason to test ``++this++`` with ``++is++``. The only plausible explanation for such a test is that you're executing code in a parent class conditionally based on the kind of child class ``++this++`` is. But code that's specific to a child class should be _in_ that child class, not in the parent.
=== Noncompliant code example
[source,csharp]
----
public class JunkFood
{
public void DoSomething()
{
if (this is Pizza) // Noncompliant
{
// ...
} else if (...
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Offload the code that's conditional on this "is" test to the appropriate subclass and remove the test.
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]