[FIR] Report warning on non-deprecated overrides of deprecated members
^KT-47902
This commit is contained in:
+10
-10
@@ -29,49 +29,49 @@ interface NotDeprecated {
|
||||
}
|
||||
|
||||
open class WE : WarningDeprecated, ErrorDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class WH : WarningDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class EH : ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NW : WarningDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NE : ErrorDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NH : HiddenDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class WEH: WarningDeprecated, ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NWEH: NotDeprecated, WarningDeprecated, ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -89,12 +89,12 @@ interface E2: ErrorDeprecated
|
||||
interface W2: WarningDeprecated
|
||||
|
||||
interface EW2: E2, W2 {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
}
|
||||
}
|
||||
|
||||
interface HEW2: EW2, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -29,49 +29,49 @@ interface NotDeprecated {
|
||||
}
|
||||
|
||||
open class WE : WarningDeprecated, ErrorDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class WH : WarningDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class EH : ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NW : WarningDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NE : ErrorDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NH : HiddenDeprecated, NotDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class WEH: WarningDeprecated, ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
open class NWEH: NotDeprecated, WarningDeprecated, ErrorDeprecated, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -89,12 +89,12 @@ interface E2: ErrorDeprecated
|
||||
interface W2: WarningDeprecated
|
||||
|
||||
interface EW2: E2, W2 {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
}
|
||||
}
|
||||
|
||||
interface HEW2: EW2, HiddenDeprecated {
|
||||
override fun f() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>f<!>() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+7
-7
@@ -32,48 +32,48 @@ open class SetterDeprecated {
|
||||
}
|
||||
|
||||
class WD: WarningDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
class ED: ErrorDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class GD: GetterDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class SD: SetterDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class SDH: SetterDeprecated(), HiddenDeprecated {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class EDH: ErrorDeprecated(), HiddenDeprecated {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class NED: ErrorDeprecated(), NoDeprecation {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
|
||||
+7
-7
@@ -32,48 +32,48 @@ open class SetterDeprecated {
|
||||
}
|
||||
|
||||
class WD: WarningDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
class ED: ErrorDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class GD: GetterDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class SD: SetterDeprecated() {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class SDH: SetterDeprecated(), HiddenDeprecated {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class EDH: ErrorDeprecated(), HiddenDeprecated {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
}
|
||||
|
||||
class NED: ErrorDeprecated(), NoDeprecation {
|
||||
override var p: Int
|
||||
override var <!OVERRIDE_DEPRECATION!>p<!>: Int
|
||||
get() = 3
|
||||
set(value) {
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// !DIAGNOSTICS: -NO_VALUE_FOR_PARAMETER
|
||||
// FILE: A.java
|
||||
|
||||
@Deprecated
|
||||
public class A {
|
||||
@Deprecated
|
||||
public String getFoo(String text) {
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B(private @property:Deprecated val foo: String) : <!DEPRECATION!>A<!>() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>getFoo<!>(text: String): String = super.<!DEPRECATION!>getFoo<!>(text + <!DEPRECATION!>foo<!>)
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -NO_VALUE_FOR_PARAMETER
|
||||
// FILE: A.java
|
||||
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ interface WithDeprecation {
|
||||
}
|
||||
|
||||
class A : J(), WithDeprecation {
|
||||
override fun foo() {}
|
||||
override fun <!OVERRIDE_DEPRECATION!>foo<!>() {}
|
||||
}
|
||||
|
||||
fun main() {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
@Deprecated
|
||||
public void foo();
|
||||
|
||||
}
|
||||
// FILE: J2.java
|
||||
public interface J2 extends J {
|
||||
@Override
|
||||
public void foo();
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
interface A : J {
|
||||
override fun <!OVERRIDE_DEPRECATION!>foo<!>()
|
||||
}
|
||||
|
||||
fun main(j: J, j2: J2, a: A) {
|
||||
j.<!DEPRECATION!>foo<!>()
|
||||
j2.foo()
|
||||
a.foo()
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: J.java
|
||||
public interface J {
|
||||
@Deprecated
|
||||
|
||||
@@ -58,13 +58,13 @@ interface I {
|
||||
}
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class X<!> : I {
|
||||
override fun foo1() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>foo1<!>() {
|
||||
}
|
||||
}
|
||||
|
||||
class B : A(<!ARGUMENT_TYPE_MISMATCH!>""<!>) {
|
||||
// still can override it
|
||||
override fun memberFun() {
|
||||
override fun <!OVERRIDE_DEPRECATION!>memberFun<!>() {
|
||||
super.<!INVISIBLE_REFERENCE!>memberFun<!>() // but cannot call super :)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user