From 57e63a85292ab797e2d84efbac28da074ad72e7a Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 7 Sep 2012 21:25:44 +0400 Subject: [PATCH] Any.hashCode() and Any?.hasCodeOrDefault(Int) added to standard library --- libraries/stdlib/src/kotlin/StandardJVM.kt | 6 ++++++ libraries/stdlib/src/kotlin/nullable/Nullables.kt | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/libraries/stdlib/src/kotlin/StandardJVM.kt b/libraries/stdlib/src/kotlin/StandardJVM.kt index 97691e789dd..e6f2e1f0f2c 100644 --- a/libraries/stdlib/src/kotlin/StandardJVM.kt +++ b/libraries/stdlib/src/kotlin/StandardJVM.kt @@ -47,3 +47,9 @@ public inline fun callable(action: ()-> T): Callable { public override fun call() = action() } } + +/** + * A helper method for calling hashCode() on Kotlin objects + * TODO remove when Any supports equals() and hashCode() + */ + public inline fun Any.hashCode(): Int = (this as java.lang.Object).hashCode() diff --git a/libraries/stdlib/src/kotlin/nullable/Nullables.kt b/libraries/stdlib/src/kotlin/nullable/Nullables.kt index 9da856d4878..b9d7f655204 100644 --- a/libraries/stdlib/src/kotlin/nullable/Nullables.kt +++ b/libraries/stdlib/src/kotlin/nullable/Nullables.kt @@ -181,3 +181,7 @@ public inline fun T?.toSortedList(transform: fun(T) : java.lang.Comparabl return answer } */ + + +/** Returns a hash code on an existing object, or default value otherwise */ + public inline fun Any?.hashCodeOrDefault(default: Int): Int = if (this == null) default else this.hashCode()