diff options
Diffstat (limited to 'tests/views/tviews2.nim')
-rw-r--r-- | tests/views/tviews2.nim | 36 |
1 files changed, 29 insertions, 7 deletions
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'] |