Generate hashCode and equals for unsigned types

This commit is contained in:
Ilya Gorbunov
2018-07-18 14:38:45 +03:00
parent e2310343d4
commit 1792a77a47
6 changed files with 47 additions and 0 deletions
@@ -138,6 +138,11 @@ public inline class UByte internal constructor(private val data: Byte) : Compara
public override fun toString(): String = toInt().toString()
public override fun hashCode(): Int = toInt()
public override fun equals(other: Any?): Boolean =
other is UByte && this.data == other.data
}
@SinceKotlin("1.3")
@@ -142,6 +142,11 @@ public inline class UInt internal constructor(private val data: Int) : Comparabl
public override fun toString(): String = toLong().toString()
public override fun hashCode(): Int = toInt()
public override fun equals(other: Any?): Boolean =
other is UInt && this.data == other.data
}
@SinceKotlin("1.3")
@@ -142,6 +142,11 @@ public inline class ULong internal constructor(private val data: Long) : Compara
public override fun toString(): String = ulongToString(data)
public override fun hashCode(): Int = ((this shr 32).toInt() xor this.toInt())
public override fun equals(other: Any?): Boolean =
other is ULong && this.data == other.data
}
@SinceKotlin("1.3")
@@ -138,6 +138,11 @@ public inline class UShort internal constructor(private val data: Short) : Compa
public override fun toString(): String = toInt().toString()
public override fun hashCode(): Int = toInt()
public override fun equals(other: Any?): Boolean =
other is UShort && this.data == other.data
}
@SinceKotlin("1.3")