Redundant visibility modifier: do not report for 'internal' inside 'private'
#KT-35639 Fixed
This commit is contained in:
committed by
Dmitry Gridin
parent
49e5f170d1
commit
03ec76b570
+4
-1
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.psi.KtProperty
|
|||||||
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
||||||
import org.jetbrains.kotlin.psi.declarationVisitor
|
import org.jetbrains.kotlin.psi.declarationVisitor
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.isPrivate
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier
|
import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPublicApi
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPublicApi
|
||||||
@@ -42,7 +43,9 @@ class RedundantVisibilityModifierInspection : AbstractKotlinInspection(), Cleanu
|
|||||||
val redundantVisibility = when {
|
val redundantVisibility = when {
|
||||||
visibilityModifier.node.elementType == implicitVisibility ->
|
visibilityModifier.node.elementType == implicitVisibility ->
|
||||||
implicitVisibility
|
implicitVisibility
|
||||||
declaration.hasModifier(KtTokens.INTERNAL_KEYWORD) && declaration.containingClassOrObject?.isLocal == true ->
|
declaration.hasModifier(KtTokens.INTERNAL_KEYWORD) && declaration.containingClassOrObject?.let {
|
||||||
|
it.isLocal || it.isPrivate()
|
||||||
|
} == true ->
|
||||||
KtTokens.INTERNAL_KEYWORD
|
KtTokens.INTERNAL_KEYWORD
|
||||||
else ->
|
else ->
|
||||||
null
|
null
|
||||||
|
|||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
private class Foo {
|
||||||
|
<caret>internal fun bar() {}
|
||||||
|
}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
private class Foo {
|
||||||
|
fun bar() {}
|
||||||
|
}
|
||||||
+5
@@ -8046,6 +8046,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/inspectionsLocal/redundantVisibilityModifier"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/inspectionsLocal/redundantVisibilityModifier"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("internalInPrivateClass.kt")
|
||||||
|
public void testInternalInPrivateClass() throws Exception {
|
||||||
|
runTest("idea/testData/inspectionsLocal/redundantVisibilityModifier/internalInPrivateClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("overridePropertySetter.kt")
|
@TestMetadata("overridePropertySetter.kt")
|
||||||
public void testOverridePropertySetter() throws Exception {
|
public void testOverridePropertySetter() throws Exception {
|
||||||
runTest("idea/testData/inspectionsLocal/redundantVisibilityModifier/overridePropertySetter.kt");
|
runTest("idea/testData/inspectionsLocal/redundantVisibilityModifier/overridePropertySetter.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user