K1: Report deprecation on synthetic properties for NOT_CONSIDERED JDK members
Currently, for other synthetic properties, deprecation from the original method is already being propagated to the relevant new synthetic property accessor. But what we need is also reporting warnings on synthetic properties accessors call-sites if original methods are considered deprecated as a result of deprecation propagation. KT-60659 Fixed ^KT-60769 Fixed
This commit is contained in:
committed by
Space Team
parent
eae97e4f76
commit
0694ee50a3
Vendored
+51
@@ -0,0 +1,51 @@
|
||||
// LANGUAGE: -StopPropagatingDeprecationThroughOverrides
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
@Deprecated
|
||||
public String getFoo() { return ""; }
|
||||
public void setFoo(String x) {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
open class KotlinClass : JavaClass() {
|
||||
@Deprecated("")
|
||||
override fun getFoo(): String {
|
||||
return super.<!DEPRECATION!>getFoo<!>()
|
||||
}
|
||||
|
||||
override fun setFoo(x: String?) {
|
||||
super.setFoo(x)
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinSubClass : KotlinClass() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>getFoo<!>(): String {
|
||||
return super.<!DEPRECATION!>getFoo<!>()
|
||||
}
|
||||
|
||||
override fun setFoo(x: String?) {
|
||||
super.setFoo(x)
|
||||
}
|
||||
}
|
||||
|
||||
fun main(j: JavaClass, k: KotlinClass, ks: KotlinSubClass) {
|
||||
j.<!DEPRECATION!>getFoo<!>()
|
||||
j.setFoo("")
|
||||
|
||||
j.<!DEPRECATION!>foo<!>
|
||||
j.foo = ""
|
||||
|
||||
k.<!DEPRECATION!>getFoo<!>()
|
||||
k.setFoo("")
|
||||
|
||||
k.<!DEPRECATION!>foo<!>
|
||||
k.foo = ""
|
||||
|
||||
ks.getFoo()
|
||||
ks.setFoo("")
|
||||
|
||||
ks.foo
|
||||
ks.foo = ""
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
// LANGUAGE: -StopPropagatingDeprecationThroughOverrides
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
@Deprecated
|
||||
public String getFoo() { return ""; }
|
||||
public void setFoo(String x) {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
open class KotlinClass : JavaClass() {
|
||||
@Deprecated("")
|
||||
override fun getFoo(): String {
|
||||
return super.<!DEPRECATION!>getFoo<!>()
|
||||
}
|
||||
|
||||
override fun setFoo(x: String?) {
|
||||
super.setFoo(x)
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinSubClass : KotlinClass() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>getFoo<!>(): String {
|
||||
return super.<!DEPRECATION!>getFoo<!>()
|
||||
}
|
||||
|
||||
override fun setFoo(x: String?) {
|
||||
super.setFoo(x)
|
||||
}
|
||||
}
|
||||
|
||||
fun main(j: JavaClass, k: KotlinClass, ks: KotlinSubClass) {
|
||||
j.<!DEPRECATION!>getFoo<!>()
|
||||
j.setFoo("")
|
||||
|
||||
j.<!DEPRECATION!>foo<!>
|
||||
j.foo = ""
|
||||
|
||||
k.<!DEPRECATION!>getFoo<!>()
|
||||
k.setFoo("")
|
||||
|
||||
k.<!DEPRECATION!>foo<!>
|
||||
k.foo = ""
|
||||
|
||||
ks.<!DEPRECATION!>getFoo<!>()
|
||||
ks.setFoo("")
|
||||
|
||||
ks.foo
|
||||
ks.foo = ""
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
// FIR_IDENTICAL
|
||||
// LANGUAGE: -StopPropagatingDeprecationThroughOverrides
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
public String getFoo() { return ""; }
|
||||
public String getBar() { return ""; }
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
open class KotlinClass : JavaClass() {
|
||||
@Deprecated("sdas")
|
||||
override fun getFoo(): String {
|
||||
return super.getFoo()
|
||||
}
|
||||
|
||||
@Deprecated("dasd", level = DeprecationLevel.ERROR)
|
||||
override fun getBar(): String {
|
||||
return super.getBar()
|
||||
}
|
||||
}
|
||||
|
||||
class KotlinSubClass : KotlinClass() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>getFoo<!>(): String {
|
||||
return super.<!DEPRECATION!>getFoo<!>()
|
||||
}
|
||||
|
||||
override fun <!OVERRIDE_DEPRECATION!>getBar<!>(): String {
|
||||
return super.<!DEPRECATION_ERROR!>getBar<!>()
|
||||
}
|
||||
}
|
||||
|
||||
fun main(kotlinClass: KotlinClass, kotlinSubClass: KotlinSubClass) {
|
||||
kotlinClass.<!DEPRECATION!>foo<!>
|
||||
kotlinClass.<!DEPRECATION_ERROR!>bar<!>
|
||||
|
||||
kotlinSubClass.foo
|
||||
kotlinSubClass.bar
|
||||
}
|
||||
+4
-4
@@ -4,10 +4,10 @@ fun foo(ll: java.util.LinkedList<String>, al: ArrayList<String>, ad: ArrayDeque<
|
||||
ll.addFirst("")
|
||||
ll.addLast("")
|
||||
ll.<!DEPRECATION!>getFirst<!>()
|
||||
ll.first // synthetic property for getFirst()
|
||||
ll.<!DEPRECATION!>first<!> // synthetic property for getFirst()
|
||||
ll.first() // stdlib extension on List
|
||||
ll.<!DEPRECATION!>getLast<!>()
|
||||
ll.last
|
||||
ll.<!DEPRECATION!>last<!>
|
||||
ll.last()
|
||||
ll.<!DEBUG_INFO_CALL("fqName: java.util.LinkedList.removeFirst; typeCall: function")!>removeFirst()<!>
|
||||
ll.<!DEBUG_INFO_CALL("fqName: java.util.LinkedList.removeLast; typeCall: function")!>removeLast()<!>
|
||||
@@ -16,10 +16,10 @@ fun foo(ll: java.util.LinkedList<String>, al: ArrayList<String>, ad: ArrayDeque<
|
||||
al.addFirst("")
|
||||
al.addLast("")
|
||||
al.<!DEPRECATION!>getFirst<!>()
|
||||
al.first
|
||||
al.<!DEPRECATION!>first<!>
|
||||
al.first()
|
||||
al.<!DEPRECATION!>getLast<!>()
|
||||
al.last
|
||||
al.<!DEPRECATION!>last<!>
|
||||
al.last()
|
||||
al.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeFirst; typeCall: function")!>removeFirst()<!>
|
||||
al.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeLast; typeCall: function")!>removeLast()<!>
|
||||
|
||||
@@ -35,10 +35,10 @@ fun foo(x: MutableList<String>, y: ArrayList<String>, z: A<String>) {
|
||||
y.addFirst("")
|
||||
y.addLast("")
|
||||
y.<!DEPRECATION!>getFirst<!>()
|
||||
y.first
|
||||
y.<!DEPRECATION!>first<!>
|
||||
y.first()
|
||||
y.<!DEPRECATION!>getLast<!>()
|
||||
y.last
|
||||
y.<!DEPRECATION!>last<!>
|
||||
y.last()
|
||||
y.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeFirst; typeCall: function")!>removeFirst()<!>
|
||||
y.<!DEBUG_INFO_CALL("fqName: java.util.ArrayList.removeLast; typeCall: function")!>removeLast()<!>
|
||||
@@ -47,10 +47,10 @@ fun foo(x: MutableList<String>, y: ArrayList<String>, z: A<String>) {
|
||||
z.addFirst("")
|
||||
z.addLast("")
|
||||
z.<!DEPRECATION!>getFirst<!>()
|
||||
z.first
|
||||
z.<!DEPRECATION!>first<!>
|
||||
z.first()
|
||||
z.<!DEPRECATION!>getLast<!>()
|
||||
z.last
|
||||
z.<!DEPRECATION!>last<!>
|
||||
z.last()
|
||||
z.<!DEBUG_INFO_CALL("fqName: A.removeFirst; typeCall: function")!>removeFirst()<!>
|
||||
z.<!DEBUG_INFO_CALL("fqName: A.removeLast; typeCall: function")!>removeLast()<!>
|
||||
|
||||
Reference in New Issue
Block a user