Replaced deprecated inline classes with JvmInline value classes in tests

This commit is contained in:
zhelenskiy
2021-10-09 02:31:28 +03:00
committed by TeamCityServer
parent b0aefd543a
commit 1da46586bd
386 changed files with 1480 additions and 840 deletions
@@ -1,7 +1,8 @@
// KJS_WITH_FULL_RUNTIME
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(private val value: Int) : Comparable<UInt> {
@JvmInline
value class UInt(private val value: Int) : Comparable<UInt> {
companion object {
private const val INT_MASK = 0xffffffffL
}
@@ -21,7 +22,8 @@ inline class UInt(private val value: Int) : Comparable<UInt> {
value xor Int.MIN_VALUE
}
inline class UIntArray(private val intArray: IntArray) {
@JvmInline
value class UIntArray(private val intArray: IntArray) {
val size: Int get() = intArray.size
operator fun get(index: Int): UInt = UInt(intArray[index])
@@ -33,7 +35,8 @@ inline class UIntArray(private val intArray: IntArray) {
operator fun iterator(): UIntIterator = UIntIterator(intArray.iterator())
}
inline class UIntIterator(private val intIterator: IntIterator) : Iterator<UInt> {
@JvmInline
value class UIntIterator(private val intIterator: IntIterator) : Iterator<UInt> {
override fun next(): UInt {
return UInt(intIterator.next())
}
@@ -1,7 +1,10 @@
// WITH_RUNTIME
@Target(AnnotationTarget.PROPERTY)
annotation class Anno
inline class Z(val s: String)
@JvmInline
value class Z(val s: String)
class A {
@Anno
@@ -1,7 +1,8 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
// IGNORE_BACKEND: JVM
inline class A(val x: Int) {
@JvmInline
value class A(val x: Int) {
fun f(): Int = super.hashCode()
}
@@ -1,18 +1,22 @@
// WITH_RUNTIME
inline class IcInt(val i: Int) {
@JvmInline
value class IcInt(val i: Int) {
fun simple(): String = i.toString()
}
inline class IcLong(val l: Long) {
@JvmInline
value class IcLong(val l: Long) {
fun simple(): String = l.toString()
}
inline class IcAny(val a: Any?) {
@JvmInline
value class IcAny(val a: Any?) {
fun simple(): String = a?.toString() ?: "null"
}
inline class IcOverIc(val o: IcLong) {
@JvmInline
value class IcOverIc(val o: IcLong) {
fun simple(): String = o.toString()
}
@@ -1,4 +1,7 @@
inline class IC private constructor(val i: Int) {
// WITH_RUNTIME
@JvmInline
value class IC private constructor(val i: Int) {
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_INLINE_CLASS")
constructor() : this(0) {
counter += 1
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class IC(val i: Int) {
@JvmInline
value class IC(val i: Int) {
init {
counter += i
}
@@ -1,9 +1,11 @@
// WITH_RUNTIME
// IGNORE_BACKEND: JVM
abstract class C<T> {
fun foo(v: T?, x: (T) -> Any?) = v?.let { x(it) }
}
inline class V(val value: Any?)
@JvmInline
value class V(val value: Any?)
class D : C<V>()
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?)
@@ -6,11 +6,14 @@ class BoxFoo(val boxed: IFoo?)
interface IFoo
inline class Str(val value: String) : IFoo
@JvmInline
value class Str(val value: String) : IFoo
inline class Str2(val value: Str): IFoo
@JvmInline
value class Str2(val value: Str): IFoo
inline class StrArr(val value: Array<String>): IFoo
@JvmInline
value class StrArr(val value: Array<String>): IFoo
fun boxToTypeParameter(x: Str?) = BoxT(x)
fun boxToNullableAny(x: Str?) = BoxAny(x)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?)
@@ -6,7 +6,8 @@ class BoxFoo(val boxed: IFoo?)
interface IFoo
inline class I32(val value: Int): IFoo
@JvmInline
value class I32(val value: Int): IFoo
fun boxToTypeParameter(x: I32?) = BoxT(x)
fun boxToNullableAny(x: I32?) = BoxAny(x)
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Result<T>(val a: Any?)
@JvmInline
value class Result<T>(val a: Any?)
fun box(): String {
val a = Result<Int>(1) // valueOf
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
fun useX(x: X): String = x.x as String
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
fun useX(x: X): String = x.x as String
@@ -1,4 +1,7 @@
inline class X(val x: Int)
// WITH_RUNTIME
@JvmInline
value class X(val x: Int)
fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: Any?)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any?)
fun useX(x: X): String = x.x as String
@@ -1,4 +1,7 @@
inline class X(val x: Any?)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: Int?)
// WITH_RUNTIME
@JvmInline
value class X(val x: Int?)
fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: Int?)
// WITH_RUNTIME
@JvmInline
value class X(val x: Int?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: String?)
// WITH_RUNTIME
@JvmInline
value class X(val x: String?)
fun useX(x: X): String = x.x ?: "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: String?)
// WITH_RUNTIME
@JvmInline
value class X(val x: String?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,4 +1,7 @@
inline class X(val x: String)
// WITH_RUNTIME
@JvmInline
value class X(val x: String)
fun useX(x: X): String = x.x
@@ -1,11 +1,13 @@
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
interface X<T> {
operator fun plus(n: Int) : T
fun next(): T = this + 1
}
inline class A(val value: Int) : X<A> {
@JvmInline
value class A(val value: Int) : X<A> {
override operator fun plus(n: Int) = A(value + n)
}
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Any)
@JvmInline
value class X(val x: Any)
interface IBar {
fun bar(): Any
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Any?)
@JvmInline
value class X(val x: Any?)
interface IBar {
fun bar(): Any
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Any)
@JvmInline
value class X(val x: Any)
interface IFoo {
fun foo(): Any
@@ -1,9 +1,11 @@
// WITH_RUNTIME
interface IFoo {
fun foo(): String
}
inline class ICFoo(val t: IFoo): IFoo {
@JvmInline
value class ICFoo(val t: IFoo): IFoo {
override fun foo(): String = t.foo()
}
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Char)
@JvmInline
value class X(val x: Char)
interface IFoo {
fun foo(): Any
@@ -8,7 +8,8 @@ interface IFooMutableList {
fun foo(): MutableList<String>
}
inline class AL(val t: MutableList<String>) : MutableList<String> {
@JvmInline
value class AL(val t: MutableList<String>) : MutableList<String> {
override val size: Int get() = t.size
override fun get(index: Int): String = t.get(index)
override fun set(index: Int, element: String): String = t.set(index, element)
@@ -1,8 +1,10 @@
// WITH_RUNTIME
interface IQ1
interface IQ2
inline class X(val x: Any): IQ1, IQ2
@JvmInline
value class X(val x: Any): IQ1, IQ2
interface IFoo1 {
fun foo(): IQ1
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
interface IFoo<T> {
fun foo(): T
@@ -1,3 +1,5 @@
// WITH_RUNTIME
interface GFoo<out T> {
fun foo(): T
}
@@ -8,7 +10,8 @@ interface IBar {
interface SFooBar : GFoo<IBar>
inline class X(val x: String) : IBar {
@JvmInline
value class X(val x: String) : IBar {
override fun bar(): String = x
}
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: String)
@JvmInline
value class X(val x: String)
interface IFoo1<T> {
fun foo(x: T): X
@@ -1,4 +1,7 @@
inline class ResultOrClosed(val x: Any?)
// WITH_RUNTIME
@JvmInline
value class ResultOrClosed(val x: Any?)
interface A<T> {
fun foo(): T
@@ -1,6 +1,7 @@
// WITH_RUNTIME
inline class FieldValue(val value: String)
@JvmInline
value class FieldValue(val value: String)
enum class RequestFields {
ENUM_ONE
@@ -2,7 +2,8 @@
// WASM_MUTE_REASON: STDLIB_TEXT
// WITH_RUNTIME
inline class NumberInlineClass(val value: Double)
@JvmInline
value class NumberInlineClass(val value: Double)
interface TypeAdapter<FROM, TO> {
fun decode(string: FROM): TO
@@ -2,7 +2,8 @@
// WASM_MUTE_REASON: STDLIB_TEXT
// WITH_RUNTIME
inline class NumberInlineClass(val value: Double)
@JvmInline
value class NumberInlineClass(val value: Double)
interface TypeAdapter<FROM, TO> {
fun decode(string: FROM): TO
@@ -1,10 +1,14 @@
inline class Marker(val i: Int)
// WITH_RUNTIME
@JvmInline
value class Marker(val i: Int)
interface I<T> {
fun foo(i: Marker) : T
}
inline class IC(val a: Any)
@JvmInline
value class IC(val a: Any)
class C : I<IC> {
override fun foo(i: Marker): IC = IC("OK")
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
interface IFoo<out T : X?> {
fun foo(): T
@@ -1,4 +1,7 @@
inline class X(val x: Any?)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any?)
interface IFoo<out T : X?> {
fun foo(): T
@@ -1,7 +1,9 @@
// IGNORE_BACKEND: JS_IR
// WITH_RUNTIME
// IGNORE_BACKEND: JS_IR_ES6
inline class X(val x: Any?)
@JvmInline
value class X(val x: Any?)
interface IFoo<out T : X?> {
fun foo(): T
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
interface IFoo {
fun foo(): X?
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Any?)
@JvmInline
value class X(val x: Any?)
interface IFoo {
fun foo(): X?
@@ -1,5 +1,7 @@
// WITH_RUNTIME
inline class X(val x: Any?)
@JvmInline
value class X(val x: Any?)
interface IFoo {
fun foo(): X?
@@ -1,9 +1,11 @@
// WITH_RUNTIME
interface IQ {
fun ok(): String
}
inline class X(val t: IQ): IQ {
@JvmInline
value class X(val t: IQ): IQ {
override fun ok(): String = t.ok()
}
@@ -1,9 +1,11 @@
// WITH_RUNTIME
interface IQ {
fun ok(): String
}
inline class X(val t: IQ): IQ {
@JvmInline
value class X(val t: IQ): IQ {
override fun ok(): String = t.ok()
}
@@ -1,10 +1,13 @@
// WITH_RUNTIME
interface IBase
interface IQ : IBase {
fun ok(): String
}
inline class X(val t: IQ): IQ {
@JvmInline
value class X(val t: IQ): IQ {
override fun ok(): String = t.ok()
}
@@ -1,10 +1,13 @@
// WITH_RUNTIME
interface IBase
interface IQ : IBase {
fun ok(): String
}
inline class X(val t: IQ): IQ {
@JvmInline
value class X(val t: IQ): IQ {
override fun ok(): String = t.ok()
}
@@ -1,4 +1,7 @@
inline class X(val x: Any)
// WITH_RUNTIME
@JvmInline
value class X(val x: Any)
interface IFoo<T> {
fun foo(): T
@@ -1,3 +1,5 @@
// WITH_RUNTIME
interface IFoo1<out T> {
fun foo(): T
}
@@ -6,7 +8,8 @@ interface IFoo2<out T> {
fun foo(): T
}
inline class X(val x: String)
@JvmInline
value class X(val x: String)
class Test : IFoo1<X>, IFoo2<X> {
override fun foo(): X = X("OK")
@@ -1,10 +1,12 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(private val value: Int) {
@JvmInline
value class UInt(private val value: Int) {
fun asInt() = value
}
inline class UIntArray(private val intArray: IntArray) {
@JvmInline
value class UIntArray(private val intArray: IntArray) {
operator fun get(index: Int): UInt = UInt(intArray[index])
operator fun set(index: Int, value: UInt) {
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(private val value: Int) {
@JvmInline
value class UInt(private val value: Int) {
operator fun plus(other: UInt): UInt = UInt(value + other.asValue())
fun asValue(): Int = value
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class IC(val x: String)
@JvmInline
value class IC(val x: String)
interface I<T> {
fun foo(): T
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Result<T>(val a: Any?) {
@JvmInline
value class Result<T>(val a: Any?) {
fun getOrThrow(): T = a as T
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class InlinedComparable(val x: Int) : Comparable<InlinedComparable> {
@JvmInline
value class InlinedComparable(val x: Int) : Comparable<InlinedComparable> {
override fun compareTo(other: InlinedComparable): Int {
return x.compareTo(other.x)
}
@@ -12,7 +13,8 @@ interface Base<T> {
fun Base<T>.foo(a: Base<T>, b: T): Base<T>
}
inline class InlinedBase(val x: Int) : Base<InlinedBase> {
@JvmInline
value class InlinedBase(val x: Int) : Base<InlinedBase> {
override fun Base<InlinedBase>.foo(a: Base<InlinedBase>, b: InlinedBase): Base<InlinedBase> {
return if (a is InlinedBase) InlinedBase(a.x + b.x) else this
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Props(val intArray: IntArray) {
@JvmInline
value class Props(val intArray: IntArray) {
val size get() = intArray.size
fun foo(): Int {
@@ -2,9 +2,12 @@
// FULL_JDK
// TARGET_BACKEND: JVM
// WITH_RUNTIME
import java.lang.reflect.InvocationTargetException
inline class Simple(val x: String) {
@JvmInline
value class Simple(val x: String) {
fun somethingWeird() {}
}
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
// TARGET_BACKEND: JVM
inline class UInt(val x: Int)
@JvmInline
value class UInt(val x: Int)
inline class UIntArray(private val storage: IntArray) : Collection<UInt> {
@JvmInline
value class UIntArray(private val storage: IntArray) : Collection<UInt> {
public override val size: Int get() = storage.size
override operator fun iterator() = TODO()
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun Z.test() = x
fun L.test() = x
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
val Z.xx get() = x
val L.xx get() = x
@@ -1,15 +1,17 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int) {
@JvmInline
value class Z(val x: Int) {
fun test() = x
}
inline class L(val x: Long) {
@JvmInline
value class L(val x: Long) {
fun test() = x
}
inline class S(val x: String) {
@JvmInline
value class S(val x: String) {
fun test() = x
}
@@ -1,15 +1,17 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int) {
@JvmInline
value class Z(val x: Int) {
val xx get() = x
}
inline class L(val x: Long) {
@JvmInline
value class L(val x: Long) {
val xx get() = x
}
inline class S(val x: String) {
@JvmInline
value class S(val x: String) {
val xx get() = x
}
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun box(): String {
if (Z(42)::x.get() != 42) throw AssertionError()
@@ -1,8 +1,8 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
import kotlin.test.assertEquals
inline class Z(val x: Int)
@JvmInline
value class Z(val x: Int)
class Outer(val z1: Z) {
inner class Inner(val z2: Z)
@@ -2,9 +2,12 @@
// WASM_MUTE_REASON: IGNORED_IN_JS
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, NATIVE
// WITH_REFLECT
// WITH_RUNTIME
import kotlin.test.*
inline class Z(val s: String)
@JvmInline
value class Z(val s: String)
fun box(): String {
val a = Z("a")
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun test(aZ: Z, aL: L, aS: S) = "${aZ.x} ${aL.x} ${aS.x}"
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun Z.test() = x
fun L.test() = x
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
val Z.xx get() = x
val L.xx get() = x
@@ -1,10 +1,12 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
import kotlin.test.assertEquals
inline class Z(internal val x: Int)
inline class L(internal val x: Long)
inline class S(internal val x: String)
@JvmInline
value class Z(internal val x: Int)
@JvmInline
value class L(internal val x: Long)
@JvmInline
value class S(internal val x: String)
fun box(): String {
assertEquals(42, Z::x.get(Z(42)))
@@ -1,15 +1,17 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int) {
@JvmInline
value class Z(val x: Int) {
fun test() = x
}
inline class L(val x: Long) {
@JvmInline
value class L(val x: Long) {
fun test() = x
}
inline class S(val x: String) {
@JvmInline
value class S(val x: String) {
fun test() = x
}
@@ -1,15 +1,17 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int) {
@JvmInline
value class Z(val x: Int) {
val xx get() = x
}
inline class L(val x: Long) {
@JvmInline
value class L(val x: Long) {
val xx get() = x
}
inline class S(val x: String) {
@JvmInline
value class S(val x: String) {
val xx get() = x
}
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun box(): String {
if (42.let(::Z).x != 42) throw AssertionError()
@@ -1,9 +1,11 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
inline class L(val x: Long)
inline class S(val x: String)
@JvmInline
value class Z(val x: Int)
@JvmInline
value class L(val x: Long)
@JvmInline
value class S(val x: String)
fun box(): String {
if ((Z::x).get(Z(42)) != 42) throw AssertionError()
@@ -1,20 +1,22 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
import kotlin.test.assertEquals
inline class Z(private val x: Int) {
@JvmInline
value class Z(private val x: Int) {
companion object {
val xref = Z::x
}
}
inline class L(private val x: Long) {
@JvmInline
value class L(private val x: Long) {
companion object {
val xref = L::x
}
}
inline class S(private val x: String) {
@JvmInline
value class S(private val x: String) {
companion object {
val xref = S::x
}
@@ -1,6 +1,6 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
@JvmInline
value class Z(val x: Int)
class C(var z: Z)
@@ -1,6 +1,6 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
@JvmInline
value class Z(val x: Int)
class C(var z: Z)
@@ -1,6 +1,6 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Z(val x: Int)
@JvmInline
value class Z(val x: Int)
var topLevel = Z(42)
@@ -1,4 +1,7 @@
inline class R(val x: Any)
// WITH_RUNTIME
@JvmInline
value class R(val x: Any)
fun useR(r: R) {
if (r.x as String != "OK") throw AssertionError("$r")
@@ -1,4 +1,7 @@
inline class Value(val value: Any)
// WITH_RUNTIME
@JvmInline
value class Value(val value: Any)
object Foo {
fun foo(value: Value) {
@@ -1,4 +1,7 @@
inline class Value(val value: Any?)
// WITH_RUNTIME
@JvmInline
value class Value(val value: Any?)
object Foo {
fun foo(value: Value) {
@@ -1,4 +1,7 @@
inline class Value(val value: Int)
// WITH_RUNTIME
@JvmInline
value class Value(val value: Int)
object Foo {
fun foo(value: Value) {
@@ -1,4 +1,7 @@
inline class Value(val value: Int?)
// WITH_RUNTIME
@JvmInline
value class Value(val value: Int?)
object Foo {
fun foo(value: Value) {
@@ -1,4 +1,7 @@
inline class Value(val value: Any)
// WITH_RUNTIME
@JvmInline
value class Value(val value: Any)
fun foo(value: Value?) = value?.value as String?
@@ -1,4 +1,7 @@
inline class Value(val value: String)
// WITH_RUNTIME
@JvmInline
value class Value(val value: String)
object Foo {
fun foo(value: Value) {
@@ -1,4 +1,7 @@
inline class Value(val value: String?)
// WITH_RUNTIME
@JvmInline
value class Value(val value: String?)
object Foo {
fun foo(value: Value) {
@@ -1,7 +1,8 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
// WITH_REFLECT
inline class Foo(val x: String) {
@JvmInline
value class Foo(val x: String) {
fun bar(f: Foo, i: Int): Foo = Foo(x + f.x + i)
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Foo<T>(val x: Any) {
@JvmInline
value class Foo<T>(val x: Any) {
fun bar() {}
}
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Foo(val value: Int)
@JvmInline
value class Foo(val value: Int)
fun <T> id(x: T): T = x
inline fun <T> inlinedId(x: T): T = x
@@ -1,12 +1,15 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class WithPrimitive(val a: Int)
@JvmInline
value class WithPrimitive(val a: Int)
fun takeWithPrimitive(a: WithPrimitive) {}
inline class WithReference(val a: Any)
@JvmInline
value class WithReference(val a: Any)
fun takeWithReference(a: WithReference) {}
inline class WithNullableReference(val a: Any?)
@JvmInline
value class WithNullableReference(val a: Any?)
fun takeWithNullableReference(a: WithNullableReference) {}
fun foo(a: WithPrimitive?, b: WithPrimitive) {
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class IC(val x: Int)
@JvmInline
value class IC(val x: Int)
interface I<T> {
fun foo(t: T): T
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class ULong(val l: Long)
@JvmInline
value class ULong(val l: Long)
fun nonLocal(): ULong? {
val u1 = ULong(1)
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Foo(val a: Int) {
@JvmInline
value class Foo(val a: Int) {
fun member(): String = ""
fun asResult() = a
@@ -1,7 +1,9 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class InlineNotNullPrimitive(val x: Int)
inline class InlineNotNullReference(val y: String)
@JvmInline
value class InlineNotNullPrimitive(val x: Int)
@JvmInline
value class InlineNotNullReference(val y: String)
fun <T> testNotNullPrimitive(a: Any, b: T, c: InlineNotNullPrimitive, d: InlineNotNullPrimitive?) {}
fun <T> testNotNullReference(a: Any, b: T, c: InlineNotNullReference, d: InlineNotNullReference?) {}
@@ -1,9 +1,13 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class InlineNotNullPrimitive(val x: Int)
inline class InlineNullablePrimitive(val x: Int?)
inline class InlineNotNullReference(val a: Any)
inline class InlineNullableReference(val a: Any?)
@JvmInline
value class InlineNotNullPrimitive(val x: Int)
@JvmInline
value class InlineNullablePrimitive(val x: Int?)
@JvmInline
value class InlineNotNullReference(val a: Any)
@JvmInline
value class InlineNullableReference(val a: Any?)
fun test1(a: InlineNotNullPrimitive) {
val a0 = a
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class IC(val x: Int)
@JvmInline
value class IC(val x: Int)
abstract class A<T> {
var t: T? = null
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Foo(val x: Int) {
@JvmInline
value class Foo(val x: Int) {
fun empty() = ""
fun withParam(a: String) = a
fun withInlineClassParam(f: Foo) = f.toString()
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(val s: Int)
@JvmInline
value class UInt(val s: Int)
fun test(a1: Any, a2: UInt?, a3: Any?, a4: Any?): Int {
val b1 = a1 as UInt
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(val u: Int) {
@JvmInline
value class UInt(val u: Int) {
override fun toString(): String {
return "UInt: $u"
}
@@ -1,7 +1,9 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class UInt(val value: Int)
inline class ULong(val value: Long)
@JvmInline
value class UInt(val value: Int)
@JvmInline
value class ULong(val value: Long)
fun foo(u: UInt, f: (UInt) -> ULong): ULong = f(u)
inline fun inlinedFoo(u: UInt, f: (UInt) -> ULong): ULong = f(u)
@@ -1,6 +1,7 @@
// !LANGUAGE: +InlineClasses
// WITH_RUNTIME
inline class Result<T>(val a: Any?) {
@JvmInline
value class Result<T>(val a: Any?) {
fun typed(): T = a as T
}
@@ -1,6 +1,9 @@
// WITH_RUNTIME
var result = "Fail"
inline class A(val value: String) {
@JvmInline
value class A(val value: String) {
init {
class B {
init {
@@ -1,3 +1,4 @@
// WITH_RUNTIME
// WITH_REFLECT
// TARGET_BACKEND: JVM
@@ -5,10 +6,14 @@ package root
import kotlin.reflect.KClass
inline class IcInt(val x: Int)
inline class IcLong(val l: Long)
inline class IcAny(val a: Any?)
inline class IcOverIc(val o: IcLong)
@JvmInline
value class IcInt(val x: Int)
@JvmInline
value class IcLong(val l: Long)
@JvmInline
value class IcAny(val a: Any?)
@JvmInline
value class IcOverIc(val o: IcLong)
fun check(c: KClass<*>, s: String) {
if (c.toString() != s) error("Fail, expected: $s, actual: $c")

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