diff --git a/lib/system.nim b/lib/system.nim index e2d214ef0..442686c07 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.} = + ## Adds ``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) = + ## Adds ``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) = + ## Adds ``y`` to ``x`` unless ``x`` is not yet initalized; in that case, ``x`` + ## becomes ``y`` if x == nil: x = y else: x.add(y)