Introduce Any?.hashCode() extension #KT-25039
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.internal.InlineOnly
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a hash code value for the object or zero if the object is `null`.
|
||||||
|
*
|
||||||
|
* @see Any.hashCode
|
||||||
|
*/
|
||||||
|
@SinceKotlin("1.3")
|
||||||
|
@InlineOnly
|
||||||
|
public inline fun Any?.hashCode(): Int = this?.hashCode() ?: 0
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package test.utils
|
||||||
|
|
||||||
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class HashCodeTest {
|
||||||
|
@Test
|
||||||
|
fun hashCodeOfNull() {
|
||||||
|
assertEquals(0, null.hashCode())
|
||||||
|
|
||||||
|
val foo: Any? = null
|
||||||
|
assertEquals(0, foo.hashCode())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun hashCodeOfNotNull() {
|
||||||
|
val value = "test"
|
||||||
|
val nullableValue: String? = value
|
||||||
|
|
||||||
|
assertEquals(value.hashCode(), nullableValue.hashCode())
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user