diff options
author | Bung <crc32@qq.com> | 2022-10-21 15:26:46 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-21 09:26:46 +0200 |
commit | 04c48e3c5b7a98b065d9f3a96575a304a60a9290 (patch) | |
tree | 8709c4e2feac4a735b6f3b00e8bbcdfffba5f215 /tests/whenstmt | |
parent | 5b195ab0f000d5276ddd9702e51215aaefc3abdb (diff) | |
download | Nim-04c48e3c5b7a98b065d9f3a96575a304a60a9290.tar.gz |
fix #19426 compile error using when/elif/else and typedesc in template (#20550)
Diffstat (limited to 'tests/whenstmt')
-rw-r--r-- | tests/whenstmt/t19426.nim | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/whenstmt/t19426.nim b/tests/whenstmt/t19426.nim new file mode 100644 index 000000000..95fb54a9e --- /dev/null +++ b/tests/whenstmt/t19426.nim @@ -0,0 +1,16 @@ +type + MyInt = object + bitWidth: int + +template toRealType*(t: MyInt): typedesc = + when t.bitWidth == 32: int32 + elif t.bitWidth == 64: int64 + else: {.error.} + +proc doFail(T: typedesc): T = default(T) + +proc test = + const myInt = MyInt(bitWidth:32) + discard doFail(toRealType(myInt)) + +test() \ No newline at end of file |