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()