
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.
68 lines
1.3 KiB
Plaintext
68 lines
1.3 KiB
Plaintext
== Why is this an issue?
|
|
|
|
There's no point in having a ``++public++`` member in a non-``++public++`` class because objects that can't access the class will never have the chance to access the member.
|
|
|
|
|
|
This rule raises an issue when classes has methods, fields, or inner classes with higher visibility than the class itself has.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
class MyClass {
|
|
|
|
public static final float PI = 3.14; // Noncompliant
|
|
|
|
public int getOne() { // Noncompliant
|
|
return 1;
|
|
}
|
|
|
|
protected class InnerClass { // Noncompliant; outer class is package-protected
|
|
public boolean flipCoin() { // Noncompliant; owning class is protected
|
|
return false;
|
|
}
|
|
// ...
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
public class MyClass { // Class visibility upgrade makes members compliant
|
|
|
|
public static final float PI = 3.14;
|
|
|
|
public int getOne() {
|
|
return 1;
|
|
}
|
|
|
|
protected class InnerClass {
|
|
protected boolean flipCoin() { // visibility changed to match class
|
|
return false;
|
|
}
|
|
// ...
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
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[]
|