| // LANGUAGE: +FullValueClasses | |
| // CHECK_BYTECODE_LISTING | |
| // WITH_STDLIB | |
| value class A(val x: Int) | |
| value class A1(val x: Int) | |
| value class A2(val x: Int, val y: Int) | |
| data class A1_(val x: Int) | |
| data class A2_(val x: Int, val y: Int) | |
| fun box(): String { | |
| singleField() | |
| multipleField() | |
| return "OK" | |
| } | |
| private fun singleField() { | |
| val a = A1(2) | |
| val a_ = A1_(2) | |
| require(a == A1(2)) { a.toString() } | |
| require(a.x == a_.x) { a.x.toString() } | |
| require(a.toString() == a_.toString().replace("_", "")) { a.toString() } | |
| require(a.hashCode() == a_.hashCode()) { "${a.hashCode()} ${A1(2).hashCode()} ${a_.hashCode()}" } | |
| } | |
| private fun multipleField() { | |
| val a = A2(2, 3) | |
| val a_ = A2_(2, 3) | |
| require(a == A2(2, 3)) { a.toString() } | |
| require(a.x == a_.x) { a.x.toString() } | |
| require(a.y == a_.y) { a.y.toString() } | |
| require(a.toString() == a_.toString().replace("_", "")) { a.toString() } | |
| require(a.hashCode() == a_.hashCode()) { "${a.hashCode()} ${a_.hashCode()}" } | |
| } |