feat: add overloaded IO.print methods accepting 2-16 arguments and printList_ helper

Add 15 static overloads of IO.print in builtin/io.wren and src/wren_io.c, each delegating to a new private printList_ method that iterates over a list of objects. Update all benchmark and test files to use the new multi-argument syntax, removing explicit .toString calls and string concatenation. Add a comprehensive test/io/print.wren verifying single-argument return value, multi-argument null return, and concatenation of up to 16 arguments.
This commit is contained in:
Bob Nystrom
2014-04-09 14:48:35 +00:00
parent 786e20ba93
commit 3e5fdc2250
14 changed files with 176 additions and 25 deletions
+65
View File
@@ -5,6 +5,71 @@ class IO {
return obj
}
static print(a1, a2) {
printList_([a1, a2])
}
static print(a1, a2, a3) {
printList_([a1, a2, a3])
}
static print(a1, a2, a3, a4) {
printList_([a1, a2, a3, a4])
}
static print(a1, a2, a3, a4, a5) {
printList_([a1, a2, a3, a4, a5])
}
static print(a1, a2, a3, a4, a5, a6) {
printList_([a1, a2, a3, a4, a5, a6])
}
static print(a1, a2, a3, a4, a5, a6, a7) {
printList_([a1, a2, a3, a4, a5, a6, a7])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15])
}
static print(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) {
printList_([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16])
}
static printList_(objects) {
for (object in objects) IO.writeString_(object.toString)
IO.writeString_("\n")
}
static write(obj) {
IO.writeString_(obj.toString)
return obj