diff --git a/tests/vm/tconst.nim b/tests/vm/tconst.nim index 5cfe7533ed..7869b2725b 100644 --- a/tests/vm/tconst.nim +++ b/tests/vm/tconst.nim @@ -54,5 +54,33 @@ template main() = doAssert c == "foo" + when not defined(js): + block: # bug #19698 + type + FormatInfo = object + readproc: ReadProc + writeproc: WriteProc + + ReadProc = proc (s: pointer) + WriteProc = proc (s: pointer) + + func initFormatInfo(readproc: ReadProc, writeproc: WriteProc = nil): FormatInfo {.compileTime.} = + result = FormatInfo(readproc: readproc, writeproc: nil) + + proc readSampleImage(s: pointer) = discard + + const SampleFormatInfo = initFormatInfo(readproc = readSampleImage) + + const KnownFormats = [SampleFormatInfo] + + func sortedFormatInfos(): array[len KnownFormats, FormatInfo] {.compileTime.} = + result = default(array[len KnownFormats, FormatInfo]) + for i, info in KnownFormats: + result[i] = info + + const SortedFormats = sortedFormatInfos() + + discard SortedFormats + static: main() main()