AllOpen: Fix incorrect 'accessing non-final property in constructor' warning (KT-16619)
This commit is contained in:
@@ -39,7 +39,9 @@ enum class Modality {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val CallableMemberDescriptor.isOverridable: Boolean
|
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
|
val CallableMemberDescriptor.isOverridableOrOverrides: Boolean
|
||||||
get() = isOverridable || DescriptorUtils.isOverride(this)
|
get() = isOverridable || DescriptorUtils.isOverride(this)
|
||||||
|
|||||||
@@ -23,4 +23,12 @@
|
|||||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Leaking 'this' in constructor</problem_class>
|
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Leaking 'this' in constructor</problem_class>
|
||||||
<description>Accessing non-final property x in constructor</description>
|
<description>Accessing non-final property x in constructor</description>
|
||||||
</problem>
|
</problem>
|
||||||
|
<problem>
|
||||||
|
<file>test.kt</file>
|
||||||
|
<line>67</line>
|
||||||
|
<module>light_idea_test_case</module>
|
||||||
|
<entry_point TYPE="file" FQNAME="temp:///src/test.kt" />
|
||||||
|
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Leaking 'this' in constructor</problem_class>
|
||||||
|
<description>Accessing non-final property y in constructor</description>
|
||||||
|
</problem>
|
||||||
</problems>
|
</problems>
|
||||||
|
|||||||
+14
@@ -54,3 +54,17 @@ class Fourth {
|
|||||||
|
|
||||||
val y = x // null!
|
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()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user