
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.
56 lines
917 B
Plaintext
56 lines
917 B
Plaintext
== Why is this an issue?
|
|
|
|
include::description.adoc[]
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,text]
|
|
----
|
|
interface IVehicle { void Go(); }
|
|
public class Submarine : IVehicle
|
|
{
|
|
public void Go() { /* ... */ }
|
|
public void Submerge(int depth) { /* ... */ }
|
|
}
|
|
|
|
// ...
|
|
public void Travel(Submarine transport) // Noncompliant; no class-specific features used
|
|
{
|
|
transport.Go();
|
|
}
|
|
|
|
public void ExploreDepths(Submarine transport) // Compliant; class-specific feature used
|
|
{
|
|
var depth = 0;
|
|
// ...
|
|
transport.Submerge(depth);
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,text]
|
|
----
|
|
interface IVehicle { void Go(); }
|
|
public class Submarine : IVehicle
|
|
{
|
|
public void Go() { /* ... */ }
|
|
public void Submerge(int depth) { /* ... */ }
|
|
}
|
|
|
|
// ...
|
|
public void Travel(IVehicle transport)
|
|
{
|
|
transport.Go();
|
|
}
|
|
|
|
public void ExploreDepths(Submarine transport)
|
|
{
|
|
var depth = 0;
|
|
// ...
|
|
transport.Submerge(depth);
|
|
}
|
|
----
|
|
|