diff options
-rw-r--r-- | lib/system.nim | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/system.nim b/lib/system.nim index 2677e4990..4ea880b4b 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -3286,14 +3286,19 @@ when declared(initDebugger): when hasAlloc: # XXX: make these the default (or implement the NilObject optimization) proc safeAdd*[T](x: var seq[T], y: T) {.noSideEffect.} = + ## Add `y` to `x` unless `x` is not yet initialized; in that case, `x` + ## becomes `@[y]` if x == nil: x = @[y] else: x.add(y) proc safeAdd*(x: var string, y: char) = + ## Add `y` to `x`. If `x` is `nil` it is initialized to `""` if x == nil: x = "" x.add(y) proc safeAdd*(x: var string, y: string) = + ## Add `y` to `x` unless `x` is not yet initalized; in that case, `x` + ## becomes `y` if x == nil: x = y else: x.add(y) |