Additional diagnostics for @JvmDefaultWithCompatibility

This commit is contained in:
Mikhael Bogdanov
2021-12-06 09:21:04 +01:00
parent a1262a4ecd
commit a2395ec8bb
16 changed files with 249 additions and 10 deletions
@@ -0,0 +1,7 @@
// !JVM_TARGET: 1.6
@JvmDefaultWithCompatibility
interface A {}
@JvmDefaultWithCompatibility
class B : A {}
@@ -0,0 +1,7 @@
// !JVM_TARGET: 1.6
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefaultWithCompatibility<!>
interface A {}
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefaultWithCompatibility<!>
class B : A {}
@@ -0,0 +1,14 @@
package
@kotlin.jvm.JvmDefaultWithCompatibility 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
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmDefaultWithCompatibility public final class B : A {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,10 @@
// !JVM_TARGET: 1.8
// !JVM_DEFAULT_MODE: all
@JvmDefaultWithCompatibility
interface A<T> {
fun test(p: T) {}
}
@JvmDefaultWithCompatibility
class B : A<String> {}
@@ -0,0 +1,10 @@
// !JVM_TARGET: 1.8
// !JVM_DEFAULT_MODE: all
@JvmDefaultWithCompatibility
interface A<T> {
fun test(p: T) {}
}
<!JVM_DEFAULT_WITH_COMPATIBILITY_NOT_ON_INTERFACE!>@JvmDefaultWithCompatibility<!>
class B : A<String> {}
@@ -0,0 +1,16 @@
package
@kotlin.jvm.JvmDefaultWithCompatibility public interface A</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ p: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmDefaultWithCompatibility public final class B : A<kotlin.String> {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,9 @@
// !JVM_TARGET: 1.8
@JvmDefaultWithCompatibility
interface A<T> {
fun test(p: T) {}
}
@JvmDefaultWithCompatibility
class B : A<String> {}
@@ -0,0 +1,9 @@
// !JVM_TARGET: 1.8
<!JVM_DEFAULT_WITH_COMPATIBILITY_IN_DECLARATION!>@JvmDefaultWithCompatibility<!>
interface A<T> {
fun test(p: T) {}
}
<!JVM_DEFAULT_WITH_COMPATIBILITY_IN_DECLARATION!>@JvmDefaultWithCompatibility<!>
class B : A<String> {}
@@ -0,0 +1,16 @@
package
@kotlin.jvm.JvmDefaultWithCompatibility public interface A</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ p: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmDefaultWithCompatibility public final class B : A<kotlin.String> {
public constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}