Do not disable 'redundant visibility modifier' inspection completely in Explicit API mode.

Instead, disable it only for effectively public declarations.

Add tests for this IDE inspection.
This commit is contained in:
Leonid Startsev
2019-10-16 14:38:47 +03:00
parent 5ab262c977
commit 24688f3503
7 changed files with 121 additions and 1 deletions
@@ -0,0 +1,34 @@
<problems>
<problem>
<file>redundantVisibilityModifierWithExplicitApi.kt</file>
<line>24</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/redundantVisibilityModifierWithExplicitApi.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Redundant visibility modifier</problem_class>
<description>Redundant visibility modifier</description>
</problem>
<problem>
<file>redundantVisibilityModifierWithExplicitApi.kt</file>
<line>29</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/redundantVisibilityModifierWithExplicitApi.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Redundant visibility modifier</problem_class>
<description>Redundant visibility modifier</description>
</problem>
<problem>
<file>redundantVisibilityModifierWithExplicitApi.kt</file>
<line>40</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/redundantVisibilityModifierWithExplicitApi.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Redundant visibility modifier</problem_class>
<description>Redundant visibility modifier</description>
</problem>
<problem>
<file>redundantVisibilityModifierWithExplicitApi.kt</file>
<line>46</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/redundantVisibilityModifierWithExplicitApi.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Redundant visibility modifier</problem_class>
<description>Redundant visibility modifier</description>
</problem>
</problems>
@@ -0,0 +1,2 @@
// INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.RedundantVisibilityModifierInspection
// COMPILER_ARGUMENTS: -Xexplicit-api=strict
@@ -0,0 +1,49 @@
public class C {
public val foo: Int = 0
public fun bar() {}
}
open class D {
protected open fun willRemainProtected() {
}
protected open fun willBecomePublic() {
}
}
class E : D() {
protected override fun willRemainProtected() {
}
public override fun willBecomePublic() {
}
}
enum class F private constructor(val x: Int) {
FIRST(42)
}
sealed class G constructor(val y: Int) {
private constructor(): this(42)
object H : G()
}
interface I {
fun bar()
}
fun f() {
val i = object : I {
internal var foo = 0
override fun bar() {}
}
i.foo = 1
class LocalClass {
internal var foo = 0
}
LocalClass().foo = 1
}