K2: add & fix tests for JVM BE diagnostics

This commit is contained in:
Mikhail Glukhikh
2022-10-14 09:46:22 +02:00
committed by Space Team
parent 185e74fd26
commit 1826d9b332
34 changed files with 972 additions and 188 deletions
@@ -1,3 +1,5 @@
// IGNORE_FIR
open class B {
fun getX() = 1
}
@@ -1,3 +1,4 @@
// IGNORE_FIR
// TARGET_BACKEND: JVM_IR
interface B {
fun getX() = 1
@@ -1,8 +0,0 @@
// TARGET_BACKEND: JVM_IR
interface B {
fun getX() = 1
}
class C : B {
<!ACCIDENTAL_OVERRIDE!><!NOTHING_TO_OVERRIDE!>override<!> val x<!> = 1
}
@@ -1,17 +0,0 @@
package
public interface B {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun getX(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class C : B {
public constructor C()
public open val x: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun getX(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,3 +1,5 @@
// IGNORE_FIR
interface T {
fun getX(): Int
}
@@ -1,3 +1,4 @@
// IGNORE_FIR
// TARGET_BACKEND: JVM_IR
interface T {
fun getX() = 1
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -1,3 +1,5 @@
// IGNORE_FIR
class G<T>
val <T> G<T>.foo: Int
@@ -1,5 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// TARGET_BACKEND: JVM_IR
// IGNORE_FIR
interface A<T> {
fun foo(l: List<T>)
@@ -1,3 +1,5 @@
// IGNORE_FIR
enum class E {
ENTRY;
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -1,3 +1,5 @@
// IGNORE_FIR
val x: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
@@ -1,3 +1,4 @@
// IGNORE_FIR
// TARGET_BACKEND: JVM_IR
interface T {
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
@@ -1,3 +1,4 @@
// IGNORE_FIR
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
@@ -1,6 +1,8 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A {
<!CONFLICTING_JVM_DECLARATIONS!>fun f(a: List<Int>): String<!> = TODO()
<!CONFLICTING_JVM_DECLARATIONS!>private fun f(<!UNUSED_PARAMETER!>a<!>: List<String>): String<!> = TODO()
<!CONFLICTING_JVM_DECLARATIONS!>private fun f(a: List<String>): String<!> = TODO()
}
class B : A
@@ -1,3 +1,4 @@
// IGNORE_FIR
// TARGET_BACKEND: JVM_IR
interface T {
@@ -1,8 +1,10 @@
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg <!UNUSED_PARAMETER!>x<!>: Int)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(<!UNUSED_PARAMETER!>x<!>: IntArray)<!> {}
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg <!UNUSED_PARAMETER!>x<!>: Int?)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(<!UNUSED_PARAMETER!>x<!>: Array<Int>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg x: Int)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: IntArray)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg <!UNUSED_PARAMETER!>nn<!>: Number)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(<!UNUSED_PARAMETER!>nn<!>: Array<out Number>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg x: Int?)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Array<Int>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(vararg nn: Number)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(nn: Array<out Number>)<!> {}
@@ -1,31 +0,0 @@
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER, -PLATFORM_CLASS_MAPPED_TO_KOTLIN
// WITH_STDLIB
package kotlin.jvm
annotation class JvmInline
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>inline<!> class IC0(val a: Any): Cloneable
@JvmInline
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>value<!> class VC0(val a: Any): Cloneable
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>inline<!> class IC1(val a: Any): java.lang.Cloneable
@JvmInline
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>value<!> class VC1(val a: Any): java.lang.Cloneable
interface MyCloneable1: Cloneable
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>inline<!> class IC2(val a: Any): MyCloneable1
@JvmInline
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>value<!> class VC2(val a: Any): MyCloneable1
interface MyCloneable2: java.lang.Cloneable
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>inline<!> class IC3(val a: Any): MyCloneable2
@JvmInline
<!VALUE_CLASS_CANNOT_BE_CLONEABLE!>value<!> class VC3(val a: Any): MyCloneable2
@@ -1,95 +0,0 @@
package
package kotlin {
package kotlin.jvm {
public final inline class IC0 : kotlin.Cloneable {
public constructor IC0(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
protected open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public final inline class IC1 : java.lang.Cloneable {
public constructor IC1(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public final inline class IC2 : kotlin.jvm.MyCloneable1 {
public constructor IC2(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
protected open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public final inline class IC3 : kotlin.jvm.MyCloneable2 {
public constructor IC3(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
public final annotation class JvmInline : kotlin.Annotation {
public constructor JvmInline()
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
}
public interface MyCloneable1 : kotlin.Cloneable {
protected open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
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
}
public interface MyCloneable2 : java.lang.Cloneable {
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.JvmInline public final value class VC0 : kotlin.Cloneable {
public constructor VC0(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
protected open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmInline public final value class VC1 : java.lang.Cloneable {
public constructor VC1(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmInline public final value class VC2 : kotlin.jvm.MyCloneable1 {
public constructor VC2(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
protected open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@kotlin.jvm.JvmInline public final value class VC3 : kotlin.jvm.MyCloneable2 {
public constructor VC3(/*0*/ a: kotlin.Any)
public final val a: kotlin.Any
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
}
}