Closed
Description
Example
{.experimental: "views".}
type
Reader = object
data: openArray[char]
current: int
proc initReader(data: openArray[char], offset = 0): Reader =
when defined(bad):
result = Reader(data: data, current: offset)
when defined(good):
result.data = data
result.current = offset
let s = "\x01\x00\x00\x00"
echo initReader(s).data[0].int
Current Output -d:good
1
Current Output -d:bad
....CC: bug2.nim
/home/jfondren/.cache/nim/bug2_d/@mbug2.nim.c: In function ‘initReader__UYdi27TUMFesBFKaWXlJFQ’:
/home/jfondren/.cache/nim/bug2_d/@mbug2.nim.c:346:16: error: incompatible types when assigning to type ‘tyOpenArray__g7UvpSI7wiag75QHJKQ1sQ’ from type ‘NIM_CHAR *’ {aka ‘char *’}
346 | result.data = data;
| ^~~~
Error: execution of an external compiler program 'gcc -c -w -fmax-errors=3 -I/home/jfondren/.choosenim/toolchains/nim-1.4.0/lib -I/home/jfondren/nim/bugs -o /home/jfondren/.cache/nim/bug2_d/@mbug2.nim.c.o /home/jfondren/.cache/nim/bug2_d/@mbug2.nim.c' failed with exit code: 1
Additional Information
$ nim -v
Nim Compiler Version 1.4.0 [Linux: amd64]
Compiled at 2020-10-16
Copyright (c) 2006-2020 by Andreas Rumpf
git hash: bdcd87afca238a0a7b2c70971827cf9172817b12
active boot switches: -d:release