[Tests] Remove unnecessary usages of OPTIONAL_JVM_INLINE_ANNOTATION
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
This commit is contained in:
committed by
Space Team
parent
50310d42e3
commit
fa4a4e56f3
@@ -1,23 +1,22 @@
|
||||
// WITH_STDLIB
|
||||
// WITH_REFLECT
|
||||
// TARGET_BACKEND: JVM
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
package root
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IcInt(val x: Int)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IcLong(val l: Long)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IcAny(val a: Any?)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IcOverIc(val o: IcLong)
|
||||
|
||||
fun check(c: KClass<*>, s: String) {
|
||||
|
||||
+4
-5
@@ -1,21 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// FULL_JDK
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
|
||||
import java.lang.reflect.Modifier
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC1<T: Int> public constructor(val i: T)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC11<T: Int> internal constructor(val i: T)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC2<T: Int> private constructor(val i: T)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC4<T: Int> protected constructor(val i: T)
|
||||
|
||||
fun box(): String {
|
||||
|
||||
+2
-3
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
@@ -9,7 +8,7 @@ interface I {
|
||||
fun getVal(): Int
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC1(val x: Int) : I {
|
||||
override fun getVal(): Int {
|
||||
return x
|
||||
@@ -31,7 +30,7 @@ value class IC1(val x: Int) : I {
|
||||
}
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC2(val y: Int) : I {
|
||||
override fun getVal(): Int {
|
||||
return y * 10
|
||||
|
||||
+2
-3
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
@@ -7,14 +6,14 @@
|
||||
import java.lang.AssertionError
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC1(val x: Double) {
|
||||
fun equals(other: IC1): Boolean {
|
||||
return abs(x - other.x) < 0.5
|
||||
}
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC2(val x: Int) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is IC2) {
|
||||
|
||||
+1
-2
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC(val x: Double) {
|
||||
operator fun equals(other: IC): Boolean {
|
||||
return abs(x - other.x) < 0.1
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC1(val value: Double) {
|
||||
fun equals(other: IC1): Boolean {
|
||||
return abs(value - other.value) < 0.1
|
||||
@@ -17,29 +16,29 @@ interface I {
|
||||
fun equals(param: IC2): Boolean
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC2(val value: Int) : I {
|
||||
override operator fun equals(param: IC2): Boolean {
|
||||
return abs(value - param.value) < 2
|
||||
}
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC3(val value: Int) {
|
||||
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC4(val value: Int) {
|
||||
override fun equals(other: Any?) = TODO()
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC5(val value: Int) {
|
||||
operator fun equals(other: IC5): Nothing = TODO()
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC6(val value: Int) {
|
||||
override fun equals(other: Any?): Nothing = TODO()
|
||||
}
|
||||
|
||||
+4
-5
@@ -1,10 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC1<T : Number>(val x: T) {
|
||||
fun equals(other: Int) = false
|
||||
fun equals(other: IC1<*>) = true
|
||||
@@ -12,19 +11,19 @@ value class IC1<T : Number>(val x: T) {
|
||||
|
||||
class Generic<T, R>(val x: T, val y: R)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC2<T, R>(val value: Generic<T, R>) {
|
||||
fun equals(other: IC1<Double>) = false
|
||||
fun equals(other: IC2<*, *>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC3<T>(val value: T) {
|
||||
fun equals(other: Int) = false
|
||||
fun equals(other: IC3<*>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC4<T>(val value: T) {
|
||||
fun equals(other: String) = false
|
||||
fun equals(other: IC4<*>) = true
|
||||
|
||||
+1
-2
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC(val x: Int) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is IC) {
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// FILE: R.kt
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class R(val value: String) {
|
||||
companion object {
|
||||
inline fun ok() = R("OK")
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
// FILE: R.kt
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class R<T: String>(val value: T) {
|
||||
companion object {
|
||||
inline fun ok() = R("OK")
|
||||
|
||||
+10
-11
@@ -1,47 +1,46 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class A(val x: Int) {
|
||||
operator fun equals(other: A) = true
|
||||
}
|
||||
|
||||
class C
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class B1(val x: A)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class B2(val x: A?)
|
||||
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class D1(val x: C) {
|
||||
operator fun equals(other: D1) = true
|
||||
}
|
||||
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class D2(val x: C?) {
|
||||
operator fun equals(other: D2) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class E1(val x: D1)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class E2(val x: D2)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F<T>(val x: T)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class G<T : D1>(val x: T)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class H<T>(val x: F<T>)
|
||||
|
||||
fun box(): String {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
import kotlin.jvm.JvmInline
|
||||
@@ -9,7 +8,7 @@ open class Expando {
|
||||
val expansion: Expansion = Expansion()
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class Expansion(val map: MutableMap<String, Any?> = mutableMapOf()) {
|
||||
override inline fun toString(): String = "OK"
|
||||
}
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class I(val x: Int)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class JLI(val x: java.lang.Integer)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class U(val x: Unit?)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class N(val x: Nothing?)
|
||||
|
||||
val icUnit = U(Unit)
|
||||
|
||||
+1
-2
@@ -1,9 +1,8 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class Str(val s: String)
|
||||
|
||||
@JvmOverloads
|
||||
|
||||
+1
-2
@@ -1,9 +1,8 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class Str<T: String>(val s: T)
|
||||
|
||||
@JvmOverloads
|
||||
|
||||
+1
-2
@@ -1,11 +1,10 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class R(private val r: Int) {
|
||||
|
||||
companion object {
|
||||
|
||||
+2
-3
@@ -1,14 +1,13 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class A(val x: Int) {
|
||||
operator fun equals(other: A) = x % 5 == other.x % 5
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class B(val x: A)
|
||||
|
||||
fun box() = if (B(A(0)) == B(A(5))) "OK" else "Fail"
|
||||
|
||||
+8
-9
@@ -1,46 +1,45 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
class A(x: Int)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class B(val a: A) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class C<T>(val t: T) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class D<T : Int>(val t: T) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class E(val d: Double) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F(val e: E) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class G(val e: Int?) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class H(val e: Any?) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class I(val e: E?) {
|
||||
override fun equals(other: Any?) = true
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,11 +1,10 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
// FILE: a.kt
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC(val v: Int) {
|
||||
fun <T> getT(): T? = null
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
// WITH_REFLECT
|
||||
// FULL_JDK
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
@@ -9,7 +8,7 @@ import java.lang.reflect.InvocationTargetException
|
||||
import kotlin.reflect.jvm.isAccessible
|
||||
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class IC(val str: String)
|
||||
|
||||
class A(val a: IC, val x : String) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses +ContextReceivers
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// FIR_IDENTICAL
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// IGNORE_BACKEND: ANDROID, ANDROID_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +ValueClassesSecondaryConstructorWithBody
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// !LANGUAGE: +ValueClasses
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
|
||||
+8
-9
@@ -1,28 +1,27 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F1(val x: Int)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F2(val x: UInt)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F3(val x: F1, val y: F2)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F4(val x: Int)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F5(val x: UInt)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class F6(val x: String)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class A(
|
||||
val f1: F1,
|
||||
val f2: F2,
|
||||
@@ -35,7 +34,7 @@ value class A(
|
||||
val f9: String,
|
||||
)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class B(val a1: A, val a2: A) {
|
||||
override fun toString(): String {
|
||||
return "OverridenBToString(a1 = $a1, a2 = $a2)"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// WITH_STDLIB
|
||||
// WITH_COROUTINES
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
// FILE: caller.kt
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
var counter = 0
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC(val x: Int, val y: Int) {
|
||||
|
||||
fun equals(other: MFVC): Boolean {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
@@ -7,14 +6,14 @@
|
||||
import java.lang.AssertionError
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC1(val x: Int, val y: Int) {
|
||||
fun equals(other: MFVC1): Boolean {
|
||||
return abs(x - other.x) < 2 && abs(y - other.y) < 2
|
||||
}
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC2(val x: Int, val y: Int) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is MFVC2) {
|
||||
|
||||
+1
-2
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC(val x: Double, val y: Int) {
|
||||
fun equals(other: MFVC): Boolean {
|
||||
return abs(x - other.x) < 0.1
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
@@ -10,7 +9,7 @@ interface I {
|
||||
fun equals(param: MFVC): Boolean
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC(val value: Int, val y: Int) : I {
|
||||
override fun equals(param: MFVC): Boolean {
|
||||
return abs(value - param.value) < 2
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// FIR_IDENTICAL
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class A(val value1: MyClass, val value2: MyClass) {
|
||||
override fun hashCode() = 42
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC1<T : Number>(val x: T, val other: Int) {
|
||||
fun equals(x: Int, other: Int) = false
|
||||
fun equals(other: MFVC1<*>) = true
|
||||
@@ -12,19 +11,19 @@ value class MFVC1<T : Number>(val x: T, val other: Int) {
|
||||
|
||||
class Generic<T, R>(val x: T, val y: R)
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC2<T, R>(val value: Generic<T, R>, val other: Int) {
|
||||
fun equals(value: MFVC1<Double>, other: Int) = false
|
||||
fun equals(other: MFVC2<*, *>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC3<T>(val value: T, val other: Int) {
|
||||
fun equals(value: Int, other: Int) = false
|
||||
fun equals(other: MFVC3<*>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC4<T>(val value: T, val other: Int) {
|
||||
fun equals(value: Any, other: Int) = false
|
||||
fun equals(other: MFVC4<*>) = true
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
@JvmInline
|
||||
value class MFVC(val x: Int, val y: Int) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is MFVC) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// LANGUAGE: +GenericInlineClassParameter
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
// FIR_IDENTICAL
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
@@ -294,4 +293,4 @@ fun box(): String {
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// !LANGUAGE: +ValueClasses
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// FIR_IDENTICAL
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses
|
||||
|
||||
@JvmInline
|
||||
|
||||
Reference in New Issue
Block a user