Do not report deprecation on members of deprecated companion

This deprecation is reported on the companion itself anyway
This commit is contained in:
Alexander Udalov
2016-09-19 13:26:18 +03:00
parent b08ed14f66
commit 8949ffbef1
3 changed files with 6 additions and 13 deletions
@@ -112,7 +112,7 @@ private fun deprecationByOverridden(root: CallableMemberDescriptor): Deprecation
return
}
else -> {
overriddenDescriptors.forEach { traverse(it) }
overriddenDescriptors.forEach(::traverse)
}
}
}
@@ -147,13 +147,6 @@ private fun DeclarationDescriptor.getDeprecationByAnnotation(): DeprecatedByAnno
val propertyAnnotation = propertyDescriptor.getDeclaredDeprecatedAnnotation()
if (propertyAnnotation != null)
return DeprecatedByAnnotation(propertyAnnotation, propertyDescriptor)
val classDescriptor = containingDeclaration as? ClassDescriptor
if (classDescriptor != null && classDescriptor.isCompanionObject) {
val classAnnotation = classDescriptor.getDeclaredDeprecatedAnnotation()
if (classAnnotation != null)
return DeprecatedByAnnotation(classAnnotation, classDescriptor)
}
}
}
return null
@@ -8,8 +8,8 @@ class Another {
fun first() {
<!DEPRECATION!>Another<!>.use()
Another.<!DEPRECATION!>Companion<!>.<!DEPRECATION!>USE<!> // TODO
<!DEPRECATION!>Another<!>.<!DEPRECATION!>USE<!> // TODO
Another.<!DEPRECATION!>Companion<!>.USE
<!DEPRECATION!>Another<!>.USE
}
fun useCompanion() {
+3 -3
View File
@@ -1,13 +1,13 @@
fun test() {
<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">MyClass</warning>.<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">test</warning>
<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">MyClass</warning>.test
MyClass()
val a: MyClass? = null
val b: MyTrait? = null
<warning descr="[DEPRECATION] 'companion object of MyTrait' is deprecated. Use A instead">MyTrait</warning>.<warning descr="[DEPRECATION] 'companion object of MyTrait' is deprecated. Use A instead">test</warning>
<warning descr="[DEPRECATION] 'companion object of MyTrait' is deprecated. Use A instead">MyTrait</warning>.test
MyTrait.<warning descr="[DEPRECATION] 'companion object of MyTrait' is deprecated. Use A instead">Companion</warning>
<warning descr="[DEPRECATION] 'companion object of MyTrait' is deprecated. Use A instead">MyTrait</warning>
MyClass.<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">Companion</warning>
MyClass.<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">Companion</warning>.<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">test</warning>
MyClass.<warning descr="[DEPRECATION] 'companion object of MyClass' is deprecated. Use A instead">Companion</warning>.test
a == b
}