Generate toString implementation for unsigned types

This commit is contained in:
Ilya Gorbunov
2018-05-08 17:50:41 +03:00
parent e988ea5a1c
commit 0eee258fce
6 changed files with 42 additions and 1 deletions
+16
View File
@@ -69,6 +69,8 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns
generateMemberConversions()
generateToStringHashCode()
out.println("}")
out.println()
@@ -203,6 +205,20 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns
}
private fun generateToStringHashCode() {
out.print(" public override fun toString(): String = ")
when (type) {
UnsignedType.UBYTE, UnsignedType.USHORT -> out.println("toInt().toString()")
UnsignedType.UINT -> out.println("toLong().toString()")
UnsignedType.ULONG -> out.println("ulongToString(data)")
else -> error(type)
}
out.println()
}
private fun maxByDomainCapacity(type1: UnsignedType, type2: UnsignedType): UnsignedType =
if (type1.ordinal > type2.ordinal) type1 else type2