mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
Generate optimized hashCode for primitive type with jvmTarget 1.8+
#KT-7571 Fixed
This commit is contained in:
25
compiler/testData/codegen/java8/bytecodeText/hashCode/dataClass.kt
vendored
Normal file
25
compiler/testData/codegen/java8/bytecodeText/hashCode/dataClass.kt
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
data class Hash(
|
||||
val a: Boolean,
|
||||
val b: Byte,
|
||||
val c: Char,
|
||||
val d: Short,
|
||||
val e: Int,
|
||||
val f: Long,
|
||||
val g: Float,
|
||||
val j: Double,
|
||||
val k: Any
|
||||
)
|
||||
|
||||
|
||||
// 8 \.hashCode
|
||||
// 0 INVOKESTATIC java/lang/Boolean\.hashCode \(Z\)I
|
||||
// 1 INVOKESTATIC java/lang/Byte\.hashCode \(B\)I
|
||||
// 1 INVOKESTATIC java/lang/Character\.hashCode \(C\)I
|
||||
// 1 INVOKESTATIC java/lang/Short\.hashCode \(S\)I
|
||||
// 1 INVOKESTATIC java/lang/Integer\.hashCode \(I\)I
|
||||
// 1 INVOKESTATIC java/lang/Long\.hashCode \(J\)I
|
||||
// 1 INVOKESTATIC java/lang/Float\.hashCode \(F\)I
|
||||
// 1 INVOKESTATIC java/lang/Double\.hashCode \(D\)I
|
||||
// 1 INVOKEVIRTUAL java/lang/Object\.hashCode \(\)I
|
||||
26
compiler/testData/codegen/java8/bytecodeText/hashCode/hashCode.kt
vendored
Normal file
26
compiler/testData/codegen/java8/bytecodeText/hashCode/hashCode.kt
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
fun box(): String {
|
||||
true.hashCode()
|
||||
1.toByte().hashCode()
|
||||
1.toChar().hashCode()
|
||||
1.toShort().hashCode()
|
||||
1.hashCode()
|
||||
1L.hashCode()
|
||||
1.0F.hashCode()
|
||||
1.0.hashCode()
|
||||
"".hashCode()
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// 9 \.hashCode
|
||||
// 1 INVOKESTATIC java/lang/Boolean\.hashCode \(Z\)I
|
||||
// 1 INVOKESTATIC java/lang/Byte\.hashCode \(B\)I
|
||||
// 1 INVOKESTATIC java/lang/Character\.hashCode \(C\)I
|
||||
// 1 INVOKESTATIC java/lang/Short\.hashCode \(S\)I
|
||||
// 1 INVOKESTATIC java/lang/Integer\.hashCode \(I\)I
|
||||
// 1 INVOKESTATIC java/lang/Long\.hashCode \(J\)I
|
||||
// 1 INVOKESTATIC java/lang/Float\.hashCode \(F\)I
|
||||
// 1 INVOKESTATIC java/lang/Double\.hashCode \(D\)I
|
||||
// 1 INVOKEVIRTUAL java/lang/String\.hashCode \(\)I
|
||||
Reference in New Issue
Block a user