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:
Vendored
+34
@@ -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>
|
||||
idea/testData/inspections/redundantVisibilityModifierWithExplicitApi/inspectionData/inspections.test
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
// INSPECTION_CLASS: org.jetbrains.kotlin.idea.inspections.RedundantVisibilityModifierInspection
|
||||
// COMPILER_ARGUMENTS: -Xexplicit-api=strict
|
||||
+49
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user