[FIR] Add JVM Default diagnostics
This commit is contained in:
committed by
TeamCityServer
parent
b5ff49c903
commit
cfd2835254
-60
@@ -1,60 +0,0 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
|
||||
interface A<T> {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test(p: T) {
|
||||
}
|
||||
}
|
||||
|
||||
interface ANonDefault {
|
||||
fun test(p: String) {}
|
||||
}
|
||||
|
||||
interface B<T> : A<T> {
|
||||
|
||||
override fun test(p: T)
|
||||
{}
|
||||
}
|
||||
|
||||
interface C<T> : A<T>, ANonDefault {
|
||||
|
||||
override fun test(p: T)
|
||||
{}
|
||||
|
||||
override fun test(p: String) {
|
||||
}
|
||||
}
|
||||
|
||||
interface C1 : C<String> {
|
||||
override fun test(p: String) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface C2 : C<String>, ANonDefault {
|
||||
override fun test(p: String) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface D<T> : ANonDefault, A<T> {
|
||||
|
||||
override fun test(p: T)
|
||||
{}
|
||||
|
||||
override fun test(p: String) {
|
||||
}
|
||||
}
|
||||
|
||||
interface D1 : D<String> {
|
||||
override fun test(p: String) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
interface D2 : ANonDefault, D<String> {
|
||||
override fun test(p: String) {
|
||||
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.8
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
|
||||
|
||||
-72
@@ -1,72 +0,0 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
// FILE: JavaInterface.java
|
||||
public interface JavaInterface {
|
||||
default void test() {}
|
||||
|
||||
default void testForNonDefault() {}
|
||||
|
||||
void testAbstract();
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
interface KotlinInterface : JavaInterface {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
override fun test() {}
|
||||
|
||||
override fun testForNonDefault() {}
|
||||
|
||||
override fun testAbstract() {}
|
||||
}
|
||||
|
||||
interface KotlinInterface2 : JavaInterface, KotlinInterface {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
override fun test() {}
|
||||
|
||||
override fun testForNonDefault() {}
|
||||
|
||||
override fun testAbstract() {}
|
||||
}
|
||||
|
||||
|
||||
interface KotlinInterfaceForIndirect : JavaInterface {
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterfaceIndirectInheritance : KotlinInterfaceForIndirect {
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
override fun test() {}
|
||||
|
||||
override fun testForNonDefault() {}
|
||||
|
||||
override fun testAbstract() {}
|
||||
}
|
||||
|
||||
open class KotlinClass : JavaInterface {
|
||||
override fun test() {}
|
||||
|
||||
override fun testForNonDefault() {}
|
||||
|
||||
override fun testAbstract() {}
|
||||
}
|
||||
|
||||
interface KotlinInterfaceX {
|
||||
|
||||
fun test() {}
|
||||
|
||||
fun testForNonDefault() {}
|
||||
|
||||
fun testAbstract() {}
|
||||
}
|
||||
|
||||
interface KotlinInterfaceManySuper: JavaInterface, KotlinInterfaceX {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
override fun test() {}
|
||||
|
||||
override fun testForNonDefault() {}
|
||||
|
||||
override fun testAbstract() {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
|
||||
Vendored
+8
-9
@@ -1,18 +1,17 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test() {
|
||||
}
|
||||
}
|
||||
|
||||
interface B : A {
|
||||
|
||||
interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>B<!> : A {
|
||||
}
|
||||
|
||||
|
||||
open class Foo : B
|
||||
open class Foo2 : B, A
|
||||
open class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Foo<!> : B
|
||||
open class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Foo2<!> : B, A
|
||||
|
||||
open class FooNoError : B {
|
||||
override fun test() {
|
||||
@@ -23,12 +22,12 @@ open class Foo2NoError : B, A {
|
||||
}
|
||||
}
|
||||
|
||||
class Bar : Foo()
|
||||
class Bar2 : Foo(), A
|
||||
class Bar3 : Foo(), B
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Bar<!> : Foo()
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Bar2<!> : Foo(), A
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Bar3<!> : Foo(), B
|
||||
|
||||
open class BarWithJvmDefault : B {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_NOT_IN_INTERFACE!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
override fun test() {
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
-1
@@ -7,7 +7,6 @@ interface A {
|
||||
}
|
||||
|
||||
interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>B<!> : A {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
// !JVM_TARGET: 1.6
|
||||
|
||||
@JvmDefaultWithoutCompatibility
|
||||
interface A {}
|
||||
|
||||
@JvmDefaultWithoutCompatibility
|
||||
class B : A {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.6
|
||||
|
||||
<!JVM_DEFAULT_IN_JVM6_TARGET!>@JvmDefaultWithoutCompatibility<!>
|
||||
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
@JvmDefaultWithoutCompatibility
|
||||
interface A<T> {
|
||||
fun test(p: T) {}
|
||||
}
|
||||
|
||||
@JvmDefaultWithoutCompatibility
|
||||
class B : A<String> {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@JvmDefaultWithoutCompatibility<!>
|
||||
|
||||
Vendored
+7
-7
@@ -2,27 +2,27 @@
|
||||
|
||||
interface B {
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test() {}
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
abstract fun test2(s: String = "")
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
abstract fun test3()
|
||||
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
abstract val prop: String
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
abstract val prop2: String
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
val prop3: String
|
||||
get() = ""
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
var prop4: String
|
||||
get() = ""
|
||||
set(value) {}
|
||||
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
abstract class A {
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test() {}
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract fun test2(s: String = "")
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract fun test3()
|
||||
}
|
||||
|
||||
object B {
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test() {}
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test2(s: String = "") {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
abstract class A {
|
||||
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test() {}
|
||||
}
|
||||
|
||||
interface Abstract : A {
|
||||
override fun test()
|
||||
}
|
||||
|
||||
interface ANonDefault {
|
||||
fun test() {}
|
||||
}
|
||||
|
||||
interface B: A {
|
||||
override fun test() {}
|
||||
}
|
||||
|
||||
interface C: ANonDefault, A {
|
||||
override fun test() {}
|
||||
}
|
||||
|
||||
interface D: A, ANonDefault {
|
||||
override fun test() {}
|
||||
}
|
||||
|
||||
class Foo : A {
|
||||
override fun test() {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.8
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
|
||||
|
||||
+7
-7
@@ -1,18 +1,18 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
// FILE: 1.kt
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test() {
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
interface B : A {
|
||||
interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>B<!> : A {
|
||||
|
||||
}
|
||||
|
||||
interface C : B {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
override fun test() {
|
||||
super.test()
|
||||
}
|
||||
@@ -23,7 +23,7 @@ open class Foo : B {
|
||||
super.test()
|
||||
}
|
||||
}
|
||||
open class Foo2 : B
|
||||
open class <!JVM_DEFAULT_THROUGH_INHERITANCE!>Foo2<!> : B
|
||||
|
||||
open class Bar : Foo2() {
|
||||
override fun test() {
|
||||
@@ -37,7 +37,7 @@ open class Bar2 : Bar() {
|
||||
}
|
||||
}
|
||||
|
||||
class ManySupers: Foo2(), B {
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>ManySupers<!>: Foo2(), B {
|
||||
fun foo() {
|
||||
super<Foo2>.test()
|
||||
super<<!QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE!>B<!>>.test()
|
||||
@@ -45,7 +45,7 @@ class ManySupers: Foo2(), B {
|
||||
}
|
||||
}
|
||||
|
||||
class ManySupers2: Foo2(), C {
|
||||
class <!JVM_DEFAULT_THROUGH_INHERITANCE!>ManySupers2<!>: Foo2(), C {
|
||||
fun foo() {
|
||||
super<Foo2>.test()
|
||||
super<C>.test()
|
||||
@@ -53,7 +53,7 @@ class ManySupers2: Foo2(), C {
|
||||
}
|
||||
}
|
||||
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class ManySupers3<!>: Bar2(), C {
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class <!JVM_DEFAULT_THROUGH_INHERITANCE!>ManySupers3<!><!>: Bar2(), C {
|
||||
fun foo() {
|
||||
super<Bar2>.test()
|
||||
super<C>.test()
|
||||
|
||||
Vendored
+6
-6
@@ -1,6 +1,6 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test() {
|
||||
}
|
||||
}
|
||||
@@ -10,13 +10,13 @@ interface B{
|
||||
}
|
||||
}
|
||||
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface AB<!>: A, B
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>AB<!><!>: A, B
|
||||
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface BA<!>: B, A
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>BA<!><!>: B, A
|
||||
|
||||
|
||||
interface C : A, B {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
override fun test() {
|
||||
super<B>.test()
|
||||
super<A>.test()
|
||||
@@ -24,9 +24,9 @@ interface C : A, B {
|
||||
}
|
||||
|
||||
interface D : B, A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
override fun test() {
|
||||
super<B>.test()
|
||||
super<A>.test()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -1,6 +1,6 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test()
|
||||
}
|
||||
|
||||
@@ -29,4 +29,4 @@ class D : B, A {
|
||||
fun foo() {
|
||||
super<B>.test()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+5
-5
@@ -1,6 +1,6 @@
|
||||
// !JVM_TARGET: 1.8
|
||||
interface A {
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
<!JVM_DEFAULT_IN_DECLARATION!>@<!DEPRECATION!>JvmDefault<!><!>
|
||||
fun test() {
|
||||
|
||||
}
|
||||
@@ -9,8 +9,8 @@ interface A {
|
||||
interface B{
|
||||
fun test()
|
||||
}
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface AB<!> : A, B
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface BA<!> : B, A
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>AB<!><!> : A, B
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>interface <!JVM_DEFAULT_THROUGH_INHERITANCE!>BA<!><!> : B, A
|
||||
|
||||
class C : A, B {
|
||||
override fun test() {
|
||||
@@ -24,8 +24,8 @@ class D : B, A {
|
||||
}
|
||||
}
|
||||
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>class E<!>: B, A {
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>class <!JVM_DEFAULT_THROUGH_INHERITANCE!>E<!><!>: B, A {
|
||||
fun foo() {
|
||||
super<A>.test()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
// !JVM_TARGET: 1.6
|
||||
|
||||
interface B {
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
fun test() {}
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract fun test2(s: String = "")
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract fun test3()
|
||||
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract val prop: String
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
abstract val prop2: String
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
val prop3: String
|
||||
get() = ""
|
||||
|
||||
@<!DEPRECATION!>JvmDefault<!>
|
||||
var prop4: String
|
||||
get() = ""
|
||||
set(value) {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !JVM_TARGET: 1.6
|
||||
|
||||
interface B {
|
||||
|
||||
Reference in New Issue
Block a user