From 55373e65b44c5d15ced134fb59ef24ccfbeee64c Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Sun, 4 Dec 2022 15:39:14 +0800 Subject: [PATCH] unpublic `arrayWith` and rename it to `nimArrayWith` (#21006) * unpublic arrayWith * unindent --- compiler/sem.nim | 8 ++++---- lib/system.nim | 2 +- tests/objects/tobject_default_value.nim | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/sem.nim b/compiler/sem.nim index 25116f8d6f..a1388bd877 100644 --- a/compiler/sem.nim +++ b/compiler/sem.nim @@ -642,10 +642,10 @@ proc defaultNodeField(c: PContext, a: PNode, aTyp: PType, id: var IntSet): PNode if child != nil: let node = newNode(nkIntLit) node.intVal = toInt64(lengthOrd(c.graph.config, aTypSkip)) - result = semExpr(c, newTree(nkCall, newSymNode(getSysSym(c.graph, a.info, "arrayWith"), a.info), - semExprWithType(c, child), - node - )) + result = semExpr(c, newTree(nkCall, newSymNode(getCompilerProc(c.graph, "nimArrayWith"), a.info), + semExprWithType(c, child), + node + )) result.typ = aTyp elif aTypSkip.kind == tyTuple: var hasDefault = false diff --git a/lib/system.nim b/lib/system.nim index ac806759ca..8faf8f4ceb 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2798,7 +2798,7 @@ when notJSnotNims and not defined(nimSeqsV2): assert y == "abcgh" discard -proc arrayWith*[T](y: T, size: static int): array[size, T] {.noinit.} = # ? exempt from default value for result +proc nimArrayWith[T](y: T, size: static int): array[size, T] {.compilerRtl, raises: [].} = ## Creates a new array filled with `y`. for i in 0..size-1: result[i] = y diff --git a/tests/objects/tobject_default_value.nim b/tests/objects/tobject_default_value.nim index 7ea4b42ae7..cdc6016e08 100644 --- a/tests/objects/tobject_default_value.nim +++ b/tests/objects/tobject_default_value.nim @@ -267,7 +267,7 @@ template main {.dirty.} = doAssert $(@my) == """@['\x00', '\x00', '\x00', '\x00', '\x00']""" block: # array - var x: array[10, Object] = arrayWith(default(Object), 10) + var x: array[10, Object] = default(array[10, Object]) let y = x[0] doAssert y.value == 12 doAssert y.time == 1.2