Tests: move inline class-related diagnostic tests
... with backend-reported diagnostics to testsWithJvmBackend.
This commit is contained in:
committed by
Space Team
parent
d08c904b0c
commit
56a1a3153b
+8
@@ -0,0 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline class IC(val i: Int)
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any, ic: IC) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any?, ic: IC) {}<!>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// ALLOW_KOTLIN_PACKAGE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
package kotlin.jvm
|
||||
|
||||
annotation class JvmInline
|
||||
|
||||
@JvmInline
|
||||
value class X(val x: Int)
|
||||
@JvmInline
|
||||
value class Z(val x: Int)
|
||||
|
||||
class TestOk1(val a: Int, val b: Int) {
|
||||
constructor(x: X) : this(x.x, 1)
|
||||
}
|
||||
|
||||
class TestErr1<!CONFLICTING_JVM_DECLARATIONS!>(val a: Int)<!> {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(x: X) : this(x.x)<!>
|
||||
}
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>class TestErr2(val a: Int, val b: Int) {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(x: X) : this(x.x, 1)<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(z: Z) : this(z.x, 2)<!>
|
||||
}<!>
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline class X(val x: Int)
|
||||
inline class Z(val x: Int)
|
||||
|
||||
class TestOk1(val a: Int, val b: Int) {
|
||||
constructor(x: X) : this(x.x, 1)
|
||||
}
|
||||
|
||||
class TestErr1<!CONFLICTING_JVM_DECLARATIONS!>(val a: Int)<!> {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(x: X) : this(x.x)<!>
|
||||
}
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>class TestErr2(val a: Int, val b: Int) {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(x: X) : this(x.x, 1)<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>constructor(z: Z) : this(z.x, 2)<!>
|
||||
}<!>
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// ALLOW_KOTLIN_PACKAGE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
package kotlin.jvm
|
||||
|
||||
annotation class JvmInline
|
||||
|
||||
@JvmInline
|
||||
value class X(val x: Int)
|
||||
@JvmInline
|
||||
value class Z(val x: Int)
|
||||
@JvmInline
|
||||
value class Str(val str: String)
|
||||
@JvmInline
|
||||
value class Name(val name: String)
|
||||
@JvmInline
|
||||
value class NStr(val str: String?)
|
||||
|
||||
fun testSimple(x: X) {}
|
||||
fun testSimple(z: Z) {}
|
||||
|
||||
fun testMixed(x: Int, y: Int) {}
|
||||
fun testMixed(x: X, y: Int) {}
|
||||
fun testMixed(x: Int, y: X) {}
|
||||
fun testMixed(x: X, y: X) {}
|
||||
|
||||
fun testNewType(s: Str) {}
|
||||
fun testNewType(name: Name) {}
|
||||
|
||||
fun testNullableVsNonNull1(s: Str) {}
|
||||
fun testNullableVsNonNull1(s: Str?) {}
|
||||
|
||||
fun testNullableVsNonNull2(ns: NStr) {}
|
||||
fun testNullableVsNonNull2(ns: NStr?) {}
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testFunVsExt(x: X) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun X.testFunVsExt() {}<!>
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: Number) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun <T : Number> testNonGenericVsGeneric(x: X, y: T) {}<!>
|
||||
|
||||
class C<TC : Number> {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: Number) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun <T : Number> testNonGenericVsGeneric(x: X, y: T) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: TC) {}<!>
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline class X(val x: Int)
|
||||
inline class Z(val x: Int)
|
||||
inline class Str(val str: String)
|
||||
inline class Name(val name: String)
|
||||
inline class NStr(val str: String?)
|
||||
|
||||
fun testSimple(x: X) {}
|
||||
fun testSimple(z: Z) {}
|
||||
|
||||
fun testMixed(x: Int, y: Int) {}
|
||||
fun testMixed(x: X, y: Int) {}
|
||||
fun testMixed(x: Int, y: X) {}
|
||||
fun testMixed(x: X, y: X) {}
|
||||
|
||||
fun testNewType(s: Str) {}
|
||||
fun testNewType(name: Name) {}
|
||||
|
||||
fun testNullableVsNonNull1(s: Str) {}
|
||||
fun testNullableVsNonNull1(s: Str?) {}
|
||||
|
||||
fun testNullableVsNonNull2(ns: NStr) {}
|
||||
fun testNullableVsNonNull2(ns: NStr?) {}
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testFunVsExt(x: X) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun X.testFunVsExt() {}<!>
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: Number) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun <T : Number> testNonGenericVsGeneric(x: X, y: T) {}<!>
|
||||
|
||||
class C<TC : Number> {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: Number) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun <T : Number> testNonGenericVsGeneric(x: X, y: T) {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun testNonGenericVsGeneric(x: X, y: TC) {}<!>
|
||||
}
|
||||
Reference in New Issue
Block a user