[IR] Support user-defined equals for MFVC
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
This commit is contained in:
committed by
Space Team
parent
51f9f31a0a
commit
9f01ccc304
+5
-2
@@ -1,7 +1,10 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
|
||||
interface I {
|
||||
@@ -52,4 +55,4 @@ value class IC2(val y: Int) : I {
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String = if (setOf(IC1(10), IC2(1)).size == 1) "OK" else "Fail"
|
||||
fun box(): String = if (setOf(IC1(10), IC2(1)).size == 1) "OK" else "Fail"
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
@kotlin.Metadata
|
||||
public interface I {
|
||||
// source: 'inlineClassBothEqualsOverride.kt'
|
||||
public abstract method getVal(): int
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC1 {
|
||||
// source: 'inlineClassBothEqualsOverride.kt'
|
||||
private final field x: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IC1
|
||||
public static method constructor-impl(p0: int): int
|
||||
public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean
|
||||
public final static method equals-P1kVloU(p0: int, p1: int): boolean
|
||||
public static method equals-impl(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public method getVal(): int
|
||||
public static method getVal-impl(p0: int): int
|
||||
public final method getX(): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC2 {
|
||||
// source: 'inlineClassBothEqualsOverride.kt'
|
||||
private final field y: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IC2
|
||||
public static method constructor-impl(p0: int): int
|
||||
public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean
|
||||
public final static method equals-ACFGG4I(p0: int, p1: int): boolean
|
||||
public static method equals-impl(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public method getVal(): int
|
||||
public static method getVal-impl(p0: int): int
|
||||
public final method getY(): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassBothEqualsOverrideKt {
|
||||
// source: 'inlineClassBothEqualsOverride.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+5
-2
@@ -1,7 +1,10 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import java.lang.AssertionError
|
||||
import kotlin.math.abs
|
||||
@@ -44,4 +47,4 @@ fun box(): String {
|
||||
if ((a2Typed == c2Typed) != (a2Untyped == c2Untyped)) return "Fail 4"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC1 {
|
||||
// source: 'inlineClassEqualsConsistency.kt'
|
||||
private final field x: double
|
||||
private synthetic method <init>(p0: double): void
|
||||
public synthetic final static method box-impl(p0: double): IC1
|
||||
public static method constructor-impl(p0: double): double
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-P1kVloU(p0: double, p1: double): boolean
|
||||
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: double, p1: double): boolean
|
||||
public final method getX(): double
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: double): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: double): java.lang.String
|
||||
public synthetic final method unbox-impl(): double
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC2 {
|
||||
// source: 'inlineClassEqualsConsistency.kt'
|
||||
private final field x: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IC2
|
||||
public static method constructor-impl(p0: int): int
|
||||
public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public final method getX(): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassEqualsConsistencyKt {
|
||||
// source: 'inlineClassEqualsConsistency.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+5
-2
@@ -1,7 +1,10 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
@@ -19,4 +22,4 @@ value class IC(val x: Double) {
|
||||
fun box(): String {
|
||||
val set = setOf(IC(1.0), IC(1.5), IC(1.501))
|
||||
return if (set.size == 2) "OK" else "Fail"
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC {
|
||||
// source: 'inlineClassEqualsOverriddenForCollections.kt'
|
||||
private final field x: double
|
||||
private synthetic method <init>(p0: double): void
|
||||
public synthetic final static method box-impl(p0: double): IC
|
||||
public static method constructor-impl(p0: double): double
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-K5cTq2M(p0: double, p1: double): boolean
|
||||
public static method equals-impl(p0: double, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: double, p1: double): boolean
|
||||
public final method getX(): double
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: double): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: double): java.lang.String
|
||||
public synthetic final method unbox-impl(): double
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassEqualsOverriddenForCollectionsKt {
|
||||
// source: 'inlineClassEqualsOverriddenForCollections.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
@@ -93,4 +95,4 @@ fun box() = when {
|
||||
|
||||
|
||||
else -> "OK"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class A(val value: MyClass) {
|
||||
@@ -11,4 +14,4 @@ class MyClass() {
|
||||
override fun hashCode() = -1
|
||||
}
|
||||
|
||||
fun box(): String = if (A(MyClass()).hashCode() == 42) "OK" else "Fail"
|
||||
fun box(): String = if (A(MyClass()).hashCode() == 42) "OK" else "Fail"
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class A {
|
||||
// source: 'inlineClassHashCodeOverride.kt'
|
||||
private final @org.jetbrains.annotations.NotNull field value: MyClass
|
||||
private synthetic method <init>(p0: MyClass): void
|
||||
public synthetic final static method box-impl(p0: MyClass): A
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: MyClass): MyClass
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: MyClass, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: MyClass, p1: MyClass): boolean
|
||||
public final @org.jetbrains.annotations.NotNull method getValue(): MyClass
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: MyClass): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: MyClass): java.lang.String
|
||||
public synthetic final method unbox-impl(): MyClass
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassHashCodeOverrideKt {
|
||||
// source: 'inlineClassHashCodeOverride.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class MyClass {
|
||||
// source: 'inlineClassHashCodeOverride.kt'
|
||||
public method <init>(): void
|
||||
public method hashCode(): int
|
||||
}
|
||||
+7
-6
@@ -1,12 +1,13 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC1<T : Number>(val x: T) {
|
||||
fun equals(other: Int) = false
|
||||
operator fun equals(other: IC1<*>) = true
|
||||
fun equals(other: IC1<*>) = true
|
||||
}
|
||||
|
||||
class Generic<T, R>(val x: T, val y: R)
|
||||
@@ -14,19 +15,19 @@ class Generic<T, R>(val x: T, val y: R)
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC2<T, R>(val value: Generic<T, R>) {
|
||||
fun equals(other: IC1<Double>) = false
|
||||
operator fun equals(other: IC2<*, *>) = true
|
||||
fun equals(other: IC2<*, *>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC3<T>(val value: T) {
|
||||
fun equals(other: Int) = false
|
||||
operator fun equals(other: IC3<*>) = true
|
||||
fun equals(other: IC3<*>) = true
|
||||
}
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
value class IC4<T>(val value: T) {
|
||||
fun equals(other: String) = false
|
||||
operator fun equals(other: IC4<*>) = true
|
||||
fun equals(other: IC4<*>) = true
|
||||
}
|
||||
|
||||
|
||||
@@ -52,4 +53,4 @@ fun box() = when {
|
||||
(IC4("aba") as Any) != (IC4("caba") as Any) -> "Fail 4.4"
|
||||
|
||||
else -> "OK"
|
||||
}
|
||||
}
|
||||
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
@kotlin.Metadata
|
||||
public final class Generic {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
private final field x: java.lang.Object
|
||||
private final field y: java.lang.Object
|
||||
public method <init>(p0: java.lang.Object, p1: java.lang.Object): void
|
||||
public final method getX(): java.lang.Object
|
||||
public final method getY(): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC1 {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
private final @org.jetbrains.annotations.NotNull field x: java.lang.Number
|
||||
private synthetic method <init>(p0: java.lang.Number): void
|
||||
public synthetic final static method box-impl(p0: java.lang.Number): IC1
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: java.lang.Number): java.lang.Number
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-P1kVloU(p0: java.lang.Number, @org.jetbrains.annotations.NotNull p1: java.lang.Number): boolean
|
||||
public final static method equals-impl(p0: java.lang.Number, p1: int): boolean
|
||||
public static method equals-impl(p0: java.lang.Number, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.lang.Number, p1: java.lang.Number): boolean
|
||||
public final @org.jetbrains.annotations.NotNull method getX(): java.lang.Number
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.lang.Number): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.lang.Number): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.lang.Number
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC2 {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
private final @org.jetbrains.annotations.NotNull field value: Generic
|
||||
private synthetic method <init>(p0: Generic): void
|
||||
public synthetic final static method box-impl(p0: Generic): IC2
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(@org.jetbrains.annotations.NotNull p0: Generic): Generic
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-ACFGG4I(p0: Generic, @org.jetbrains.annotations.NotNull p1: Generic): boolean
|
||||
public final static method equals-P1kVloU(p0: Generic, @org.jetbrains.annotations.NotNull p1: java.lang.Number): boolean
|
||||
public static method equals-impl(p0: Generic, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: Generic, p1: Generic): boolean
|
||||
public final @org.jetbrains.annotations.NotNull method getValue(): Generic
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: Generic): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: Generic): java.lang.String
|
||||
public synthetic final method unbox-impl(): Generic
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC3 {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
private final field value: java.lang.Object
|
||||
private synthetic method <init>(p0: java.lang.Object): void
|
||||
public synthetic final static method box-impl(p0: java.lang.Object): IC3
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(p0: java.lang.Object): java.lang.Object
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-L6TIGmY(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: java.lang.Object): boolean
|
||||
public final static method equals-impl(p0: java.lang.Object, p1: int): boolean
|
||||
public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final method getValue(): java.lang.Object
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.lang.Object): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC4 {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
private final field value: java.lang.Object
|
||||
private synthetic method <init>(p0: java.lang.Object): void
|
||||
public synthetic final static method box-impl(p0: java.lang.Object): IC4
|
||||
public static @org.jetbrains.annotations.NotNull method constructor-impl(p0: java.lang.Object): java.lang.Object
|
||||
public method equals(p0: java.lang.Object): boolean
|
||||
public final static method equals-hxZMMoI(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: java.lang.Object): boolean
|
||||
public final static method equals-impl(p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: java.lang.String): boolean
|
||||
public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object): boolean
|
||||
public final method getValue(): java.lang.Object
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: java.lang.Object): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: java.lang.Object): java.lang.String
|
||||
public synthetic final method unbox-impl(): java.lang.Object
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassTypedEqualsGenericsKt {
|
||||
// source: 'inlineClassTypedEqualsGenerics.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+5
-2
@@ -1,7 +1,10 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// https://youtrack.jetbrains.com/issue/KT-52236/Different-modality-in-psi-and-fir
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// CHECK_BYTECODE_LISTING
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
@@ -24,4 +27,4 @@ fun box(): String {
|
||||
if (IC(1) != IC(2)) return "Fail 3"
|
||||
if (IC(1) == IC(5)) return "Fail 4"
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
@kotlin.jvm.JvmInline
|
||||
@kotlin.Metadata
|
||||
public final class IC {
|
||||
// source: 'inlineClassUntypedEqualsOverriden.kt'
|
||||
private final field x: int
|
||||
private synthetic method <init>(p0: int): void
|
||||
public synthetic final static method box-impl(p0: int): IC
|
||||
public static method constructor-impl(p0: int): int
|
||||
public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean
|
||||
public static method equals-impl(p0: int, @org.jetbrains.annotations.Nullable p1: java.lang.Object): boolean
|
||||
public final static method equals-impl0(p0: int, p1: int): boolean
|
||||
public final method getX(): int
|
||||
public method hashCode(): int
|
||||
public static method hashCode-impl(p0: int): int
|
||||
public method toString(): java.lang.String
|
||||
public static method toString-impl(p0: int): java.lang.String
|
||||
public synthetic final method unbox-impl(): int
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class InlineClassUntypedEqualsOverridenKt {
|
||||
// source: 'inlineClassUntypedEqualsOverriden.kt'
|
||||
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
OPTIONAL_JVM_INLINE_ANNOTATION
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// WITH_STDLIB
|
||||
// WORKS_WHEN_VALUE_CLASS
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInInlineClasses
|
||||
// LANGUAGE: +ValueClasses, +CustomEqualsInValueClasses
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
|
||||
class A(x: Int)
|
||||
|
||||
Reference in New Issue
Block a user