fa4a4e56f3
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com> #KT-1179
68 lines
3.2 KiB
Kotlin
Vendored
68 lines
3.2 KiB
Kotlin
Vendored
// CHECK_BYTECODE_LISTING
|
|
// FIR_IDENTICAL
|
|
// WITH_STDLIB
|
|
// TARGET_BACKEND: JVM_IR
|
|
// LANGUAGE: +ValueClasses
|
|
|
|
@JvmInline
|
|
value class DPoint(val x: Double, val y: Double)
|
|
|
|
fun require(index: Int, condition: Boolean) = require(condition) { "$index" }
|
|
|
|
fun DPoint.toObject() = this as Any
|
|
fun DPoint.toDPointOrNull() = this as DPoint?
|
|
fun Nothing?.toDPointOrNull() = this as DPoint?
|
|
|
|
// separate to escape from StackOverflow in regex
|
|
|
|
fun equalsChecks1(left: DPoint, right: DPoint) {
|
|
require(100, left == right)
|
|
}
|
|
|
|
fun equalsChecks2(left: DPoint, right: DPoint) {
|
|
require(101, left.toObject() == right)
|
|
}
|
|
fun equalsChecks3(left: DPoint, right: DPoint) {
|
|
require(102, left == right.toObject())
|
|
}
|
|
fun equalsChecks4(left: DPoint, right: DPoint) {
|
|
require(103, left.toObject() == right.toObject())
|
|
}
|
|
fun equalsChecks5(left: DPoint, right: DPoint) {
|
|
require(104, null == right)
|
|
}
|
|
fun equalsChecks6(left: DPoint, right: DPoint) {
|
|
require(105, left == null)
|
|
}
|
|
fun equalsChecks7(left: DPoint, right: DPoint) {
|
|
require(106, null as Any? == right)
|
|
}
|
|
fun equalsChecks8(left: DPoint, right: DPoint) {
|
|
require(107, left == null as Any?)
|
|
}
|
|
fun equalsChecks9(left: DPoint, right: DPoint) {
|
|
require(108, null.toDPointOrNull() == right)
|
|
}
|
|
fun equalsChecks10(left: DPoint, right: DPoint) {
|
|
require(109, left == null.toDPointOrNull())
|
|
}
|
|
fun equalsChecks11(left: DPoint, right: DPoint) {
|
|
require(110, left.toDPointOrNull() == right)
|
|
}
|
|
fun equalsChecks12(left: DPoint, right: DPoint) {
|
|
require(111, left == right.toDPointOrNull())
|
|
}
|
|
|
|
// 1 BIPUSH 100\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}INVOKESTATIC .*equals-impl0.*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 101\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toObject.*\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*box-impl.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 102\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toObject.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 103\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toObject.*\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toObject.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 104\n {4}ICONST_0\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 105\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 106\n {4}ACONST_NULL\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*box.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 107\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 108\n {4}ACONST_NULL\n {4}.*toDPointOrNull.*\n {4}ASTORE.*\n {4}ALOAD.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl-\w+)+)*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 109\n {4}DLOAD 0\n {4}DLOAD 2\n {4}ACONST_NULL\n {4}.*toDPointOrNull.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 110\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toDPointOrNull.*\n {4}ASTORE.*\n {4}ALOAD.*\n {4}DUP\n {4}IFNONNULL.*(\n {3}([^b\n]|b[^o\n]|bo[^x\n]|box-impl-\w+)+)*\n {4}INVOKESTATIC .*require
|
|
// 1 BIPUSH 111\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toDPointOrNull.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require
|