From c08356865da1386a4c999e7d2df23f13979a5c05 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Thu, 16 May 2024 02:51:41 +0800 Subject: closes #15778; adds a test case (#23613) closes #15778 --- tests/views/tviews2.nim | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'tests/views') diff --git a/tests/views/tviews2.nim b/tests/views/tviews2.nim index 36ba58993..9405ec9ea 100644 --- a/tests/views/tviews2.nim +++ b/tests/views/tviews2.nim @@ -4,12 +4,34 @@ discard """ {.experimental: "views".} -type - Foo = object - id: openArray[char] +block: + type + Foo = object + id: openArray[char] -proc foo(): Foo = - var source = "1245" - result = Foo(id: source.toOpenArray(0, 1)) + proc foo(): Foo = + var source = "1245" + result = Foo(id: source.toOpenArray(0, 1)) + + doAssert foo().id == @['1', '2'] + +block: # bug #15778 + type + Reader = object + data: openArray[char] + current: int + + var count = 0 + + proc read(data: var Reader, length: int): openArray[char] = + inc count + let start = data.current + data.current.inc length + return data.data.toOpenArray(start, data.current-1) + + var data = "hello there" + var reader = Reader(data: data.toOpenArray(0, data.len-1), current: 0) + doAssert @(reader.read(2)) == @['h', 'e'] + doAssert @(reader.read(3)) == @['l', 'l', 'o'] + doAssert count == 2 -doAssert foo().id == @['1', '2'] -- cgit 1.4.1-2-gfad0