Add and (un)mute inline class tests

This commit is contained in:
Steven Schäfer
2019-05-10 13:33:50 +02:00
committed by Alexander Udalov
parent f1f0c7e0a0
commit 917ef250cf
273 changed files with 117 additions and 262 deletions
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val data: Int) inline class Z(val data: Int)
@@ -1,6 +1,5 @@
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME // WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val xs = Array(2) { 42u } val xs = Array(2) { 42u }
@@ -1,6 +1,5 @@
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(private val value: Int) : Comparable<UInt> { inline class UInt(private val value: Int) : Comparable<UInt> {
companion object { companion object {
@@ -1,5 +1,4 @@
// WITH_RUNTIME // WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
inline class IcInt(val i: Int) { inline class IcInt(val i: Int) {
fun simple(): String = i.toString() fun simple(): String = i.toString()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
class BoxT<T>(val boxed: T) class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?) class BoxAny(val boxed: Any?)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
class BoxT<T>(val boxed: T) class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?) class BoxAny(val boxed: Any?)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Result<T>(val a: Any?) inline class Result<T>(val a: Any?)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(private val value: Int) { inline class UInt(private val value: Int) {
fun asInt() = value fun asInt() = value
@@ -1,5 +1,6 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// This test fails on JVM_IR because of a missing implicit cast from UInt? to UInt.
inline class UInt(private val value: Int) { inline class UInt(private val value: Int) {
operator fun plus(other: UInt): UInt = UInt(value + other.asValue()) operator fun plus(other: UInt): UInt = UInt(value + other.asValue())
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class IC(val x: String) inline class IC(val x: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Result<T>(val a: Any?) { inline class Result<T>(val a: Any?) {
fun getOrThrow(): T = a as T fun getOrThrow(): T = a as T
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class InlinedComparable(val x: Int) : Comparable<InlinedComparable> { inline class InlinedComparable(val x: Int) : Comparable<InlinedComparable> {
override fun compareTo(other: InlinedComparable): Int { override fun compareTo(other: InlinedComparable): Int {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Props(val intArray: IntArray) { inline class Props(val intArray: IntArray) {
val size get() = intArray.size val size get() = intArray.size
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
inline class UInt(val x: Int) inline class UInt(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) { inline class Z(val x: Int) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) { inline class Z(val x: Int) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) { inline class Z(val x: Int) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) { inline class Z(val x: Int) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class Z(val x: Int) inline class Z(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// WITH_REFLECT // WITH_REFLECT
inline class Foo(val x: String) { inline class Foo(val x: String) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo<T>(val x: Any) { inline class Foo<T>(val x: Any) {
fun bar() {} fun bar() {}
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val value: Int) inline class Foo(val value: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class WithPrimitive(val a: Int) inline class WithPrimitive(val a: Int)
fun takeWithPrimitive(a: WithPrimitive) {} fun takeWithPrimitive(a: WithPrimitive) {}
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class IC(val x: Int) inline class IC(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class ULong(val l: Long) inline class ULong(val l: Long)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val a: Int) { inline class Foo(val a: Int) {
fun member(): String = "" fun member(): String = ""
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class InlineNotNullPrimitive(val x: Int) inline class InlineNotNullPrimitive(val x: Int)
inline class InlineNotNullReference(val y: String) inline class InlineNotNullReference(val y: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class InlineNotNullPrimitive(val x: Int) inline class InlineNotNullPrimitive(val x: Int)
inline class InlineNullablePrimitive(val x: Int?) inline class InlineNullablePrimitive(val x: Int?)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class IC(val x: Int) inline class IC(val x: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val x: Int) { inline class Foo(val x: Int) {
fun empty() = "" fun empty() = ""
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(val s: Int) inline class UInt(val s: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(val u: Int) { inline class UInt(val u: Int) {
override fun toString(): String { override fun toString(): String {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(val value: Int) inline class UInt(val value: Int)
inline class ULong(val value: Long) inline class ULong(val value: Long)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Result<T>(val a: Any?) { inline class Result<T>(val a: Any?) {
fun typed(): T = a as T fun typed(): T = a as T
@@ -1,6 +1,5 @@
// WITH_REFLECT // WITH_REFLECT
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// IGNORE_BACKEND: JVM_IR
package root package root
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UIntArray(private val intArray: IntArray) { inline class UIntArray(private val intArray: IntArray) {
val size get() = intArray.size val size get() = intArray.size
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val x: Int) : Comparable<Foo> { inline class Foo(val x: Int) : Comparable<Foo> {
override fun compareTo(other: Foo): Int { override fun compareTo(other: Foo): Int {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = ok() fun test() = ok()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Long) { inline class R(private val r: Long) {
fun test() = ok() fun test() = ok()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Composed(val s: String) { inline class Composed(val s: String) {
private constructor(s1: String, s2: String) : this(s1 + s2) private constructor(s1: String, s2: String) : this(s1 + s2)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Composed(val s: String) { inline class Composed(val s: String) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
private fun ok() = "OK" private fun ok() = "OK"
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Long) { inline class R(private val r: Long) {
private fun ok() = "OK" private fun ok() = "OK"
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = run { ok() } fun test() = run { ok() }
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Long) { inline class R(private val r: Long) {
fun test() = run { ok() } fun test() = run { ok() }
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = { ok() }() fun test() = { ok() }()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Long) { inline class R(private val r: Long) {
fun test() = { ok() }() fun test() = { ok() }()
@@ -1,6 +1,5 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
inline class R(private val r: Int) { inline class R(private val r: Int) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = { ok() }() fun test() = { ok() }()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Long) { inline class R(private val r: Long) {
fun test() = { ok() }() fun test() = { ok() }()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = object { fun test() = object {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline fun runInline(fn: () -> String) = fn() inline fun runInline(fn: () -> String) = fn()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Direction(private val direction: Int) { inline class Direction(private val direction: Int) {
fun dx() = dx[direction] fun dx() = dx[direction]
@@ -1,7 +1,6 @@
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// WITH_RUNTIME // WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
inline class A(val b: String) { inline class A(val b: String) {
override fun toString(): String = override fun toString(): String =
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Test(val x: Int) { inline class Test(val x: Int) {
private companion object { private companion object {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = { "OK" }() fun test() = { "OK" }()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = fun test() =
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = pf() fun test() = pf()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class R(private val r: Int) { inline class R(private val r: Int) {
fun test() = pv fun test() = pv
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
interface Base { interface Base {
fun result(): Int fun result(): Int
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class AsInt(val value: Int) { inline class AsInt(val value: Int) {
override fun toString(): String { override fun toString(): String {
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val x: Int) inline class Foo(val x: Int)
inline class FooRef(val y: String) inline class FooRef(val y: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val z: Int) inline class Z(val z: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val z: Int) inline class Z(val z: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val z: Int) inline class Z(val z: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
interface IFoo { interface IFoo {
fun foo(): String fun foo(): String
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val int: Int) inline class Z(val int: Int)
inline class L(val long: Long) inline class L(val long: Long)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val x: Int) { inline class Z(val x: Int) {
fun test(y: Int = 42) = x + y fun test(y: Int = 42) = x + y
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val x: Int = 1234) inline class Z(val x: Int = 1234)
inline class L(val x: Long = 1234L) inline class L(val x: Long = 1234L)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Z(val x: Int) { inline class Z(val x: Int) {
constructor(x: Long = 42L) : this(x.toInt()) constructor(x: Long = 42L) : this(x.toInt())
@@ -1,5 +1,5 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JS, JS_IR, JVM_IR, NATIVE // IGNORE_BACKEND: JS, JS_IR, NATIVE
// WITH_RUNTIME // WITH_RUNTIME
data class RGBA(val rgba: Int) data class RGBA(val rgba: Int)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class A(val i: Int) { inline class A(val i: Int) {
fun foo(s: String = "OK") = s fun foo(s: String = "OK") = s
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class UInt(private val data: Int) { inline class UInt(private val data: Int) {
fun result(): String = if (data == 1) "OK" else "fail" fun result(): String = if (data == 1) "OK" else "fail"
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Foo(val s: String) { inline class Foo(val s: String) {
fun asResult(): String = s fun asResult(): String = s
@@ -1,7 +1,6 @@
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// WITH_RUNTIME // WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
inline class X(val x: String) inline class X(val x: String)
inline class Y(val y: Number) inline class Y(val y: Number)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline class IcAny(val x: Any?) inline class IcAny(val x: Any?)
inline class IcInt(val x: Int) inline class IcInt(val x: Int)
inline class IcLong(val x: Long) inline class IcLong(val x: Long)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
fun <T> T.runExt(fn: T.() -> String) = fn() fun <T> T.runExt(fn: T.() -> String) = fn()
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
fun <T> T.runExt(fn: T.() -> String) = fn() fun <T> T.runExt(fn: T.() -> String) = fn()
@@ -0,0 +1,14 @@
// IGNORE_BACKEND: JVM, JVM_IR, JS, JS_IR, NATIVE
// There is a bug in the type mapper which results in an incorrect asm type for Z
// when the names of the inline class backing field and an extension property clash.
// https://youtrack.jetbrains.com/issue/KT-31927
inline class Z(val s: String) {
val Int.s: Int get() = 42
}
fun box(): String {
if (Z("a").toString() == "Z(s=\"a\")")
return "OK"
return "Fail"
}
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class S(val string: String) inline class S(val string: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Id(val id: String) inline class Id(val id: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Id(val id: String) inline class Id(val id: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class S1(val s1: String) inline class S1(val s1: String)
inline class S2(val s2: String) inline class S2(val s2: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WITH_REFLECT // WITH_REFLECT
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class S(val string: String) inline class S(val string: String)
@@ -1,5 +1,4 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR
inline class Id(val id: String) inline class Id(val id: String)
@@ -1,5 +1,5 @@
// !LANGUAGE: +InlineClasses // !LANGUAGE: +InlineClasses
// IGNORE_BACKEND: JVM_IR, JS, JS_IR // IGNORE_BACKEND: JS, JS_IR
// FULL_JDK // FULL_JDK
// WITH_RUNTIME // WITH_RUNTIME

Some files were not shown because too many files have changed in this diff Show More