Add custom diagnostic checker for @JvmDefault annotation
This commit is contained in:
+1
@@ -1,6 +1,7 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
// !ENABLE_JVM_DEFAULT
|
||||
interface A<T> {
|
||||
@JvmDefault
|
||||
fun test(p: T) {
|
||||
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
interface A {
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
fun test()<!> {
|
||||
}
|
||||
}
|
||||
|
||||
interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>B<!> : A {
|
||||
|
||||
}
|
||||
|
||||
|
||||
open class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Foo<!> : B
|
||||
open class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Foo2<!> : B, A
|
||||
|
||||
class Bar : Foo()
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Bar2<!> : Foo(), A
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Bar3<!> : Foo(), B
|
||||
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
package
|
||||
|
||||
public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface B : A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Bar : Foo {
|
||||
public constructor Bar()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Bar2 : Foo, A {
|
||||
public constructor Bar2()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*2*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Bar3 : Foo, B {
|
||||
public constructor Bar3()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*2*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class Foo : B {
|
||||
public constructor Foo()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class Foo2 : B, A {
|
||||
public constructor Foo2()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open override /*2*/ /*fake_override*/ fun test(): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
interface B {
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
fun test()<!> {}
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
abstract fun test2(s: String = "")<!>
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
abstract fun test3()<!>
|
||||
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
abstract val prop: String<!>
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
abstract val prop2: String<!>
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
val prop3: String<!>
|
||||
get() = ""
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefault
|
||||
var prop4: String<!>
|
||||
get() = ""
|
||||
set(value) {}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package
|
||||
|
||||
public interface B {
|
||||
@kotlin.jvm.JvmDefault public abstract val prop: kotlin.String
|
||||
@kotlin.jvm.JvmDefault public abstract val prop2: kotlin.String
|
||||
@kotlin.jvm.JvmDefault public open val prop3: kotlin.String
|
||||
@kotlin.jvm.JvmDefault public open var prop4: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open fun test(): kotlin.Unit
|
||||
@kotlin.jvm.JvmDefault public abstract fun test2(/*0*/ s: kotlin.String = ...): kotlin.Unit
|
||||
@kotlin.jvm.JvmDefault public abstract fun test3(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
// !ENABLE_JVM_DEFAULT
|
||||
interface B {
|
||||
|
||||
@JvmDefault
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
// !ENABLE_JVM_DEFAULT
|
||||
interface A {
|
||||
@JvmDefault
|
||||
fun test() {}
|
||||
|
||||
Vendored
-28
@@ -1,28 +0,0 @@
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
@JvmDefaultFeature
|
||||
interface A {
|
||||
@JvmDefault
|
||||
fun test() {
|
||||
}
|
||||
}
|
||||
|
||||
interface Abstract : <!EXPERIMENTAL_API_USAGE!>A<!> {
|
||||
<!JVM_DEFAULT_REQUIRED_FOR_OVERRIDE!>override fun <!EXPERIMENTAL_OVERRIDE!>test<!>()<!>
|
||||
}
|
||||
|
||||
interface ANonDefault {
|
||||
fun test() {}
|
||||
}
|
||||
|
||||
interface B : <!EXPERIMENTAL_API_USAGE!>A<!> {
|
||||
<!JVM_DEFAULT_REQUIRED_FOR_OVERRIDE!>override fun <!EXPERIMENTAL_OVERRIDE!>test<!>()<!> {}
|
||||
}
|
||||
|
||||
interface C : ANonDefault, <!EXPERIMENTAL_API_USAGE!>A<!> {
|
||||
<!JVM_DEFAULT_REQUIRED_FOR_OVERRIDE!>override fun <!EXPERIMENTAL_OVERRIDE!>test<!>()<!> {}
|
||||
}
|
||||
|
||||
interface D : <!EXPERIMENTAL_API_USAGE!>A<!>, ANonDefault {
|
||||
<!JVM_DEFAULT_REQUIRED_FOR_OVERRIDE!>override fun <!EXPERIMENTAL_OVERRIDE!>test<!>()<!> {}
|
||||
}
|
||||
Vendored
+1
-1
@@ -1,6 +1,6 @@
|
||||
package
|
||||
|
||||
@kotlin.jvm.JvmDefaultFeature public interface A {
|
||||
public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
@kotlin.jvm.JvmDefault public open fun test(): kotlin.Unit
|
||||
|
||||
Vendored
+1
@@ -1,6 +1,7 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
// !ENABLE_JVM_DEFAULT
|
||||
interface A {
|
||||
@JvmDefault
|
||||
val test: String
|
||||
|
||||
-1
@@ -13,7 +13,6 @@ interface B {
|
||||
abstract fun test3()
|
||||
|
||||
|
||||
|
||||
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefault<!>
|
||||
abstract val prop: String
|
||||
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// !DIAGNOSTICS: -EXPERIMENTAL_API_USAGE
|
||||
// !API_VERSION: 1.3
|
||||
// !JVM_TARGET: 1.8
|
||||
// !ENABLE_JVM_DEFAULT
|
||||
interface B {
|
||||
|
||||
@JvmDefault
|
||||
|
||||
Reference in New Issue
Block a user