Regenerate inline class tests as 1 arg value classes

This commit is contained in:
Evgeniy.Zhelenskiy
2021-12-14 19:43:05 +03:00
committed by Space
parent 5ac4722be4
commit ec2e96f3e4
398 changed files with 9654 additions and 3771 deletions
@@ -1,8 +1,9 @@
// KJS_WITH_FULL_RUNTIME // KJS_WITH_FULL_RUNTIME
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(private val value: Int) : Comparable<UInt> { value class UInt(private val value: Int) : Comparable<UInt> {
companion object { companion object {
private const val INT_MASK = 0xffffffffL private const val INT_MASK = 0xffffffffL
@@ -23,8 +24,7 @@ value class UInt(private val value: Int) : Comparable<UInt> {
value xor Int.MIN_VALUE value xor Int.MIN_VALUE
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UIntArray(private val intArray: IntArray) { value class UIntArray(private val intArray: IntArray) {
val size: Int get() = intArray.size val size: Int get() = intArray.size
@@ -37,8 +37,7 @@ value class UIntArray(private val intArray: IntArray) {
operator fun iterator(): UIntIterator = UIntIterator(intArray.iterator()) operator fun iterator(): UIntIterator = UIntIterator(intArray.iterator())
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UIntIterator(private val intIterator: IntIterator) : Iterator<UInt> { value class UIntIterator(private val intIterator: IntIterator) : Iterator<UInt> {
override fun next(): UInt { override fun next(): UInt {
return UInt(intIterator.next()) return UInt(intIterator.next())
@@ -1,10 +1,11 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Target(AnnotationTarget.PROPERTY) @Target(AnnotationTarget.PROPERTY)
annotation class Anno annotation class Anno
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val s: String) value class Z(val s: String)
class A { class A {
@@ -1,8 +1,9 @@
// WITH_STDLIB // WITH_STDLIB
// IGNORE_BACKEND: JVM // IGNORE_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class A(val x: Int) { value class A(val x: Int) {
fun f(): Int = super.hashCode() fun f(): Int = super.hashCode()
} }
@@ -1,25 +1,23 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IcInt(val i: Int) { value class IcInt(val i: Int) {
fun simple(): String = i.toString() fun simple(): String = i.toString()
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IcLong(val l: Long) { value class IcLong(val l: Long) {
fun simple(): String = l.toString() fun simple(): String = l.toString()
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IcAny(val a: Any?) { value class IcAny(val a: Any?) {
fun simple(): String = a?.toString() ?: "null" fun simple(): String = a?.toString() ?: "null"
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IcOverIc(val o: IcLong) { value class IcOverIc(val o: IcLong) {
fun simple(): String = o.toString() fun simple(): String = o.toString()
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC private constructor(val i: Int) { value class IC private constructor(val i: Int) {
@Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS") @Suppress("SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_VALUE_CLASS")
constructor() : this(0) { constructor() : this(0) {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC(val i: Int) { value class IC(val i: Int) {
init { init {
counter += i counter += i
@@ -1,11 +1,13 @@
// WITH_STDLIB // WITH_STDLIB
// IGNORE_BACKEND: JVM // IGNORE_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
abstract class C<T> { abstract class C<T> {
fun foo(v: T?, x: (T) -> Any?) = v?.let { x(it) } fun foo(v: T?, x: (T) -> Any?) = v?.let { x(it) }
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class V(val value: Any?) value class V(val value: Any?)
class D : C<V>() class D : C<V>()
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
class BoxT<T>(val boxed: T) class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?) class BoxAny(val boxed: Any?)
@@ -6,16 +8,13 @@ class BoxFoo(val boxed: IFoo?)
interface IFoo interface IFoo
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Str(val value: String) : IFoo value class Str(val value: String) : IFoo
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Str2(val value: Str): IFoo value class Str2(val value: Str): IFoo
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class StrArr(val value: Array<String>): IFoo value class StrArr(val value: Array<String>): IFoo
fun boxToTypeParameter(x: Str?) = BoxT(x) fun boxToTypeParameter(x: Str?) = BoxT(x)
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
class BoxT<T>(val boxed: T) class BoxT<T>(val boxed: T)
class BoxAny(val boxed: Any?) class BoxAny(val boxed: Any?)
@@ -6,8 +8,7 @@ class BoxFoo(val boxed: IFoo?)
interface IFoo interface IFoo
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class I32(val value: Int): IFoo value class I32(val value: Int): IFoo
fun boxToTypeParameter(x: I32?) = BoxT(x) fun boxToTypeParameter(x: I32?) = BoxT(x)
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
fun useX(x: X): String = x.x as String fun useX(x: X): String = x.x as String
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
fun useX(x: X): String = x.x as String fun useX(x: X): String = x.x as String
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Int) value class X(val x: Int)
fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x" fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
fun useX(x: X): String = x.x as String fun useX(x: X): String = x.x as String
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x" fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Int?) value class X(val x: Int?)
fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x" fun useX(x: X): String = if (x.x == 42) "OK" else "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Int?) value class X(val x: Int?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x" fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String?) value class X(val x: String?)
fun useX(x: X): String = x.x ?: "fail: $x" fun useX(x: X): String = x.x ?: "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String?) value class X(val x: String?)
fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x" fun useX(x: X): String = if (x.x == null) "OK" else "fail: $x"
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String) value class X(val x: String)
fun useX(x: X): String = x.x fun useX(x: X): String = x.x
@@ -1,13 +1,14 @@
// IGNORE_BACKEND: JVM // IGNORE_BACKEND: JVM
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface X<T> { interface X<T> {
operator fun plus(n: Int) : T operator fun plus(n: Int) : T
fun next(): T = this + 1 fun next(): T = this + 1
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class A(val value: Int) : X<A> { value class A(val value: Int) : X<A> {
override operator fun plus(n: Int) = A(value + n) override operator fun plus(n: Int) = A(value + n)
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IBar { interface IBar {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
interface IBar { interface IBar {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IFoo { interface IFoo {
@@ -1,11 +1,12 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IFoo { interface IFoo {
fun foo(): String fun foo(): String
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class ICFoo(val t: IFoo): IFoo { value class ICFoo(val t: IFoo): IFoo {
override fun foo(): String = t.foo() override fun foo(): String = t.foo()
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Char) value class X(val x: Char)
interface IFoo { interface IFoo {
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IFooList { interface IFooList {
fun foo(): List<String> fun foo(): List<String>
@@ -8,8 +10,7 @@ interface IFooMutableList {
fun foo(): MutableList<String> fun foo(): MutableList<String>
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class AL(val t: MutableList<String>) : MutableList<String> { value class AL(val t: MutableList<String>) : MutableList<String> {
override val size: Int get() = t.size override val size: Int get() = t.size
override fun get(index: Int): String = t.get(index) override fun get(index: Int): String = t.get(index)
@@ -1,10 +1,11 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IQ1 interface IQ1
interface IQ2 interface IQ2
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any): IQ1, IQ2 value class X(val x: Any): IQ1, IQ2
interface IFoo1 { interface IFoo1 {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IFoo<T> { interface IFoo<T> {
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface GFoo<out T> { interface GFoo<out T> {
fun foo(): T fun foo(): T
@@ -10,8 +12,7 @@ interface IBar {
interface SFooBar : GFoo<IBar> interface SFooBar : GFoo<IBar>
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String) : IBar { value class X(val x: String) : IBar {
override fun bar(): String = x override fun bar(): String = x
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String) value class X(val x: String)
interface IFoo1<T> { interface IFoo1<T> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class ResultOrClosed(val x: Any?) value class ResultOrClosed(val x: Any?)
interface A<T> { interface A<T> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class FieldValue(val value: String) value class FieldValue(val value: String)
enum class RequestFields { enum class RequestFields {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class NumberInlineClass(val value: Double) value class NumberInlineClass(val value: Double)
interface TypeAdapter<FROM, TO> { interface TypeAdapter<FROM, TO> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class NumberInlineClass(val value: Double) value class NumberInlineClass(val value: Double)
interface TypeAdapter<FROM, TO> { interface TypeAdapter<FROM, TO> {
@@ -1,15 +1,15 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Marker(val i: Int) value class Marker(val i: Int)
interface I<T> { interface I<T> {
fun foo(i: Marker) : T fun foo(i: Marker) : T
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC(val a: Any) value class IC(val a: Any)
class C : I<IC> { class C : I<IC> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IFoo<out T : X?> { interface IFoo<out T : X?> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
interface IFoo<out T : X?> { interface IFoo<out T : X?> {
@@ -1,9 +1,10 @@
// IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS_IR
// WITH_STDLIB // WITH_STDLIB
// IGNORE_BACKEND: JS_IR_ES6 // IGNORE_BACKEND: JS_IR_ES6
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
interface IFoo<out T : X?> { interface IFoo<out T : X?> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IFoo { interface IFoo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
interface IFoo { interface IFoo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any?) value class X(val x: Any?)
interface IFoo { interface IFoo {
@@ -1,11 +1,12 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IQ { interface IQ {
fun ok(): String fun ok(): String
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val t: IQ): IQ { value class X(val t: IQ): IQ {
override fun ok(): String = t.ok() override fun ok(): String = t.ok()
} }
@@ -1,11 +1,12 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IQ { interface IQ {
fun ok(): String fun ok(): String
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val t: IQ): IQ { value class X(val t: IQ): IQ {
override fun ok(): String = t.ok() override fun ok(): String = t.ok()
} }
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IBase interface IBase
@@ -6,8 +8,7 @@ interface IQ : IBase {
fun ok(): String fun ok(): String
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val t: IQ): IQ { value class X(val t: IQ): IQ {
override fun ok(): String = t.ok() override fun ok(): String = t.ok()
} }
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IBase interface IBase
@@ -6,8 +8,7 @@ interface IQ : IBase {
fun ok(): String fun ok(): String
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val t: IQ): IQ { value class X(val t: IQ): IQ {
override fun ok(): String = t.ok() override fun ok(): String = t.ok()
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: Any) value class X(val x: Any)
interface IFoo<T> { interface IFoo<T> {
@@ -1,4 +1,6 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
interface IFoo1<out T> { interface IFoo1<out T> {
fun foo(): T fun foo(): T
@@ -8,8 +10,7 @@ interface IFoo2<out T> {
fun foo(): T fun foo(): T
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class X(val x: String) value class X(val x: String)
class Test : IFoo1<X>, IFoo2<X> { class Test : IFoo1<X>, IFoo2<X> {
@@ -1,13 +1,13 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(private val value: Int) { value class UInt(private val value: Int) {
fun asInt() = value fun asInt() = value
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UIntArray(private val intArray: IntArray) { value class UIntArray(private val intArray: IntArray) {
operator fun get(index: Int): UInt = UInt(intArray[index]) operator fun get(index: Int): UInt = UInt(intArray[index])
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(private val value: Int) { value 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,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC(val x: String) value class IC(val x: String)
interface I<T> { interface I<T> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Result<T>(val a: Any?) { value class Result<T>(val a: Any?) {
fun getOrThrow(): T = a as T fun getOrThrow(): T = a as T
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class InlinedComparable(val x: Int) : Comparable<InlinedComparable> { value class InlinedComparable(val x: Int) : Comparable<InlinedComparable> {
override fun compareTo(other: InlinedComparable): Int { override fun compareTo(other: InlinedComparable): Int {
return x.compareTo(other.x) return x.compareTo(other.x)
@@ -14,8 +15,7 @@ interface Base<T> {
fun Base<T>.foo(a: Base<T>, b: T): Base<T> fun Base<T>.foo(a: Base<T>, b: T): Base<T>
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class InlinedBase(val x: Int) : Base<InlinedBase> { value class InlinedBase(val x: Int) : Base<InlinedBase> {
override fun Base<InlinedBase>.foo(a: Base<InlinedBase>, b: InlinedBase): 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 return if (a is InlinedBase) InlinedBase(a.x + b.x) else this
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Props(val intArray: IntArray) { value class Props(val intArray: IntArray) {
val size get() = intArray.size val size get() = intArray.size
@@ -1,13 +1,14 @@
// WITH_REFLECT // WITH_REFLECT
// FULL_JDK // FULL_JDK
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// WITH_STDLIB // WITH_STDLIB
import java.lang.reflect.InvocationTargetException import java.lang.reflect.InvocationTargetException
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Simple(val x: String) { value class Simple(val x: String) {
fun somethingWeird() {} fun somethingWeird() {}
} }
@@ -1,12 +1,12 @@
// WITH_STDLIB // WITH_STDLIB
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(val x: Int) value class UInt(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UIntArray(private val storage: IntArray) : Collection<UInt> { value class UIntArray(private val storage: IntArray) : Collection<UInt> {
public override val size: Int get() = storage.size public override val size: Int get() = storage.size
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun Z.test() = x fun Z.test() = x
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
val Z.xx get() = x val Z.xx get() = x
@@ -1,19 +1,18 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) { value class Z(val x: Int) {
fun test() = x fun test() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class L(val x: Long) { value class L(val x: Long) {
fun test() = x fun test() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class S(val x: String) { value class S(val x: String) {
fun test() = x fun test() = x
} }
@@ -1,19 +1,18 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) { value class Z(val x: Int) {
val xx get() = x val xx get() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class L(val x: Long) { value class L(val x: Long) {
val xx get() = x val xx get() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class S(val x: String) { value class S(val x: String) {
val xx get() = x val xx get() = x
} }
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun box(): String { fun box(): String {
@@ -1,8 +1,10 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
import kotlin.test.assertEquals import kotlin.test.assertEquals
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
class Outer(val z1: Z) { class Outer(val z1: Z) {
@@ -3,11 +3,12 @@
// IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, NATIVE // IGNORE_BACKEND: JS, JS_IR, JS_IR_ES6, NATIVE
// WITH_REFLECT // WITH_REFLECT
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
import kotlin.test.* import kotlin.test.*
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val s: String) value class Z(val s: String)
fun box(): String { fun box(): String {
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun test(aZ: Z, aL: L, aS: S) = "${aZ.x} ${aL.x} ${aS.x}" fun test(aZ: Z, aL: L, aS: S) = "${aZ.x} ${aL.x} ${aS.x}"
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun Z.test() = x fun Z.test() = x
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
val Z.xx get() = x val Z.xx get() = x
@@ -1,14 +1,16 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
import kotlin.test.assertEquals import kotlin.test.assertEquals
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(internal val x: Int) value class Z(internal val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(internal val x: Long) value class L(internal val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(internal val x: String) value class S(internal val x: String)
fun box(): String { fun box(): String {
@@ -1,19 +1,18 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) { value class Z(val x: Int) {
fun test() = x fun test() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class L(val x: Long) { value class L(val x: Long) {
fun test() = x fun test() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class S(val x: String) { value class S(val x: String) {
fun test() = x fun test() = x
} }
@@ -1,19 +1,18 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) { value class Z(val x: Int) {
val xx get() = x val xx get() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class L(val x: Long) { value class L(val x: Long) {
val xx get() = x val xx get() = x
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class S(val x: String) { value class S(val x: String) {
val xx get() = x val xx get() = x
} }
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun box(): String { fun box(): String {
@@ -1,13 +1,14 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(val x: Int) value class Z(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class L(val x: Long) value class L(val x: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class S(val x: String) value class S(val x: String)
fun box(): String { fun box(): String {
@@ -1,24 +1,24 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
import kotlin.test.assertEquals import kotlin.test.assertEquals
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Z(private val x: Int) { value class Z(private val x: Int) {
companion object { companion object {
val xref = Z::x val xref = Z::x
} }
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class L(private val x: Long) { value class L(private val x: Long) {
companion object { companion object {
val xref = L::x val xref = L::x
} }
} }
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class S(private val x: String) { value class S(private val x: String) {
companion object { companion object {
val xref = S::x val xref = S::x
@@ -1,6 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // WORKS_WHEN_VALUE_CLASS
@kotlin.jvm.JvmInline // LANGUAGE: +ValueClasses
OPTIONAL_JVM_INLINE_ANNOTATION
value class Z(val x: Int) value class Z(val x: Int)
class C(var z: Z) class C(var z: Z)
@@ -1,6 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // WORKS_WHEN_VALUE_CLASS
@kotlin.jvm.JvmInline // LANGUAGE: +ValueClasses
OPTIONAL_JVM_INLINE_ANNOTATION
value class Z(val x: Int) value class Z(val x: Int)
class C(var z: Z) class C(var z: Z)
@@ -1,6 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // WORKS_WHEN_VALUE_CLASS
@kotlin.jvm.JvmInline // LANGUAGE: +ValueClasses
OPTIONAL_JVM_INLINE_ANNOTATION
value class Z(val x: Int) value class Z(val x: Int)
var topLevel = Z(42) var topLevel = Z(42)
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class R(val x: Any) value class R(val x: Any)
fun useR(r: R) { fun useR(r: R) {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: Any) value class Value(val value: Any)
object Foo { object Foo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: Any?) value class Value(val value: Any?)
object Foo { object Foo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: Int) value class Value(val value: Int)
object Foo { object Foo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: Int?) value class Value(val value: Int?)
object Foo { object Foo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: Any) value class Value(val value: Any)
fun foo(value: Value?) = value?.value as String? fun foo(value: Value?) = value?.value as String?
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: String) value class Value(val value: String)
object Foo { object Foo {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Value(val value: String?) value class Value(val value: String?)
object Foo { object Foo {
@@ -1,8 +1,9 @@
// WITH_STDLIB // WITH_STDLIB
// WITH_REFLECT // WITH_REFLECT
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Foo(val x: String) { value class Foo(val x: String) {
fun bar(f: Foo, i: Int): Foo = Foo(x + f.x + i) fun bar(f: Foo, i: Int): Foo = Foo(x + f.x + i)
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Foo<T>(val x: Any) { value class Foo<T>(val x: Any) {
fun bar() {} fun bar() {}
} }
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Foo(val value: Int) value class Foo(val value: Int)
fun <T> id(x: T): T = x fun <T> id(x: T): T = x
@@ -1,17 +1,16 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class WithPrimitive(val a: Int) value class WithPrimitive(val a: Int)
fun takeWithPrimitive(a: WithPrimitive) {} fun takeWithPrimitive(a: WithPrimitive) {}
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class WithReference(val a: Any) value class WithReference(val a: Any)
fun takeWithReference(a: WithReference) {} fun takeWithReference(a: WithReference) {}
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class WithNullableReference(val a: Any?) value class WithNullableReference(val a: Any?)
fun takeWithNullableReference(a: WithNullableReference) {} fun takeWithNullableReference(a: WithNullableReference) {}
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC(val x: Int) value class IC(val x: Int)
interface I<T> { interface I<T> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class ULong(val l: Long) value class ULong(val l: Long)
fun nonLocal(): ULong? { fun nonLocal(): ULong? {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Foo(val a: Int) { value class Foo(val a: Int) {
fun member(): String = "" fun member(): String = ""
@@ -1,10 +1,11 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class InlineNotNullPrimitive(val x: Int) value class InlineNotNullPrimitive(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class InlineNotNullReference(val y: String) value class InlineNotNullReference(val y: String)
fun <T> testNotNullPrimitive(a: Any, b: T, c: InlineNotNullPrimitive, d: InlineNotNullPrimitive?) {} fun <T> testNotNullPrimitive(a: Any, b: T, c: InlineNotNullPrimitive, d: InlineNotNullPrimitive?) {}
@@ -1,16 +1,17 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class InlineNotNullPrimitive(val x: Int) value class InlineNotNullPrimitive(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class InlineNullablePrimitive(val x: Int?) value class InlineNullablePrimitive(val x: Int?)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class InlineNotNullReference(val a: Any) value class InlineNotNullReference(val a: Any)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class InlineNullableReference(val a: Any?) value class InlineNullableReference(val a: Any?)
fun test1(a: InlineNotNullPrimitive) { fun test1(a: InlineNotNullPrimitive) {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IC(val x: Int) value class IC(val x: Int)
abstract class A<T> { abstract class A<T> {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Foo(val x: Int) { value class Foo(val x: Int) {
fun empty() = "" fun empty() = ""
fun withParam(a: String) = a fun withParam(a: String) = a
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(val s: Int) value class UInt(val s: Int)
fun test(a1: Any, a2: UInt?, a3: Any?, a4: Any?): Int { fun test(a1: Any, a2: UInt?, a3: Any?, a4: Any?): Int {
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(val u: Int) { value class UInt(val u: Int) {
override fun toString(): String { override fun toString(): String {
return "UInt: $u" return "UInt: $u"
@@ -1,10 +1,10 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class UInt(val value: Int) value class UInt(val value: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class ULong(val value: Long) value class ULong(val value: Long)
fun foo(u: UInt, f: (UInt) -> ULong): ULong = f(u) fun foo(u: UInt, f: (UInt) -> ULong): ULong = f(u)
@@ -1,7 +1,8 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class Result<T>(val a: Any?) { value class Result<T>(val a: Any?) {
fun typed(): T = a as T fun typed(): T = a as T
} }
@@ -1,9 +1,10 @@
// WITH_STDLIB // WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
var result = "Fail" var result = "Fail"
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class A(val value: String) { value class A(val value: String) {
init { init {
class B { class B {
@@ -1,22 +1,23 @@
// WITH_STDLIB // WITH_STDLIB
// WITH_REFLECT // WITH_REFLECT
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
package root package root
import kotlin.reflect.KClass import kotlin.reflect.KClass
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") OPTIONAL_JVM_INLINE_ANNOTATION
@kotlin.jvm.JvmInline
value class IcInt(val x: Int) value class IcInt(val x: Int)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class IcLong(val l: Long) value class IcLong(val l: Long)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class IcAny(val a: Any?) value class IcAny(val a: Any?)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE")
@kotlin.jvm.JvmInline OPTIONAL_JVM_INLINE_ANNOTATION
value class IcOverIc(val o: IcLong) value class IcOverIc(val o: IcLong)
fun check(c: KClass<*>, s: String) { fun check(c: KClass<*>, s: String) {

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