From 801733f2863cfa753fcfe3c5fa226b214085079c Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Fri, 6 Dec 2024 20:19:57 +0800 Subject: [PATCH] adds a test case (#24518) closes #19698 --- tests/vm/tconst.nim | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) 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()