Make repr(HSlice) always available (#22332)

Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
(cherry picked from commit d37b620757)
This commit is contained in:
konsumlamm
2023-08-04 05:29:48 +02:00
committed by narimiran
parent 1c19d5c72e
commit 526dbf0cf2
3 changed files with 14 additions and 12 deletions

View File

@@ -2405,6 +2405,16 @@ when defined(nimV2):
import system/repr_v2
export repr_v2
proc repr*[T, U](x: HSlice[T, U]): string =
## Generic `repr` operator for slices that is lifted from the components
## of `x`. Example:
##
## .. code-block:: Nim
## $(1 .. 5) == "1 .. 5"
result = repr(x.a)
result.add(" .. ")
result.add(repr(x.b))
when hasAlloc or defined(nimscript):
proc insert*(x: var string, item: string, i = 0.Natural) {.noSideEffect.} =
## Inserts `item` into `x` at position `i`.

View File

@@ -177,16 +177,6 @@ proc repr*[T](x: seq[T]): string =
## $(@[23, 45]) == "@[23, 45]"
collectionToRepr(x, "@[", ", ", "]")
proc repr*[T, U](x: HSlice[T, U]): string =
## Generic `repr` operator for slices that is lifted from the components
## of `x`. Example:
##
## .. code-block:: Nim
## $(1 .. 5) == "1 .. 5"
result = repr(x.a)
result.add(" .. ")
result.add(repr(x.b))
proc repr*[T, IDX](x: array[IDX, T]): string =
## Generic `repr` operator for arrays that is lifted from the components.
collectionToRepr(x, "[", ", ", "]")

View File

@@ -40,7 +40,7 @@ template main() =
#[
BUG:
--gc:arc returns `"abc"`
regular gc returns with address, e.g. 0x1068aae60"abc", but only
regular gc returns with address, e.g. 0x1068aae60"abc", but only
for c,cpp backends (not js, vm)
]#
block:
@@ -293,7 +293,7 @@ func fn2(): int =
*a: b
do: c
doAssert a == """foo(a, b, (c, d)):
e
f
@@ -322,5 +322,7 @@ else:
do:
c"""
doAssert repr(1..2) == "1 .. 2"
static: main()
main()