diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt index 31da0171cb1..92da094b708 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/Modality.kt @@ -39,7 +39,9 @@ enum class Modality { } val CallableMemberDescriptor.isOverridable: Boolean - get() = modality != Modality.FINAL && (containingDeclaration as? ClassDescriptor)?.isFinalClass != true + get() = visibility != Visibilities.PRIVATE + && modality != Modality.FINAL + && (containingDeclaration as? ClassDescriptor)?.isFinalClass != true val CallableMemberDescriptor.isOverridableOrOverrides: Boolean get() = isOverridable || DescriptorUtils.isOverride(this) diff --git a/idea/testData/inspections/leakingThis/inspectionData/expected.xml b/idea/testData/inspections/leakingThis/inspectionData/expected.xml index ce14409a7c1..ed1815d2b65 100644 --- a/idea/testData/inspections/leakingThis/inspectionData/expected.xml +++ b/idea/testData/inspections/leakingThis/inspectionData/expected.xml @@ -23,4 +23,12 @@ Leaking 'this' in constructor Accessing non-final property x in constructor + + test.kt + 67 + light_idea_test_case + + Leaking 'this' in constructor + Accessing non-final property y in constructor + diff --git a/idea/testData/inspections/leakingThis/test.kt b/idea/testData/inspections/leakingThis/test.kt index deb9cb25b2b..24b5b69c00d 100644 --- a/idea/testData/inspections/leakingThis/test.kt +++ b/idea/testData/inspections/leakingThis/test.kt @@ -54,3 +54,17 @@ class Fourth { val y = x // null! } + +annotation class AllOpen + +@AllOpen +class A { + private val x = "A" + System.currentTimeMillis() + val y = "A" + System.currentTimeMillis() + + init { + x.toByteArray() + y.toByteArray() + } + +} \ No newline at end of file