summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorSimon Hafner <hafnersimon@gmail.com>2014-02-11 14:20:55 -0600
committerSimon Hafner <hafnersimon@gmail.com>2014-02-11 14:20:55 -0600
commitb6e4a5229dabe20514b07a130f8b26b59a427d61 (patch)
tree5610e28d200e57e18867d6d9274f76009c4e3171 /lib
parentf6e8da4332eb974a0e2d55872667f21aece57bc8 (diff)
downloadNim-b6e4a5229dabe20514b07a130f8b26b59a427d61.tar.gz
explicit firstElement for `$` in collections
Diffstat (limited to 'lib')
-rw-r--r--lib/system.nim12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/system.nim b/lib/system.nim
index e7308f5d3..222ed9d8d 100644
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -1653,11 +1653,13 @@ proc `$`*[T: tuple|object](x: T): string =
   ##   $(23, 45) == "(23, 45)"
   ##   $() == "()"
   result = "("
+  var firstElement = true
   for name, value in fieldPairs(x):
-    if result.len > 1: result.add(", ")
+    if not(firstElement): result.add(", ")
     result.add(name)
     result.add(": ")
     result.add($value)
+    firstElement = false
   result.add(")")
 
 proc `$`*[T: set](x: T): string = 
@@ -1667,9 +1669,11 @@ proc `$`*[T: set](x: T): string =
   ## .. code-block:: nimrod
   ##   ${23, 45} == "{23, 45}"
   result = "{"
+  var firstElement = true
   for value in items(x):
-    if result.len > 1: result.add(", ")
+    if not(firstElement): result.add(", ")
     result.add($value)
+    firstElement = false
   result.add("}")
 
 proc `$`*[T: seq](x: T): string = 
@@ -1679,9 +1683,11 @@ proc `$`*[T: seq](x: T): string =
   ## .. code-block:: nimrod
   ##   $(@[23, 45]) == "@[23, 45]"
   result = "@["
+  var firstElement = true
   for value in items(x):
-    if result.len > 2: result.add(", ")
+    if not(firstElement): result.add(", ")
     result.add($value)
+    firstElement = false
   result.add("]")
 
 when false: