diff options
author | metagn <metagngn@gmail.com> | 2023-09-19 10:26:26 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-19 15:26:26 +0800 |
commit | 81756d1810c7c00e0bb706bb79f5437120ae4c0e (patch) | |
tree | 566145add937c45928787dcb79fdf0515617ba74 /tests/template/tgenericparam.nim | |
parent | 51cb493b221e704efce126049f9f320eb1cb1a36 (diff) | |
download | Nim-81756d1810c7c00e0bb706bb79f5437120ae4c0e.tar.gz |
second test case haul for templates and generics (#22728)
closes #8390, closes #11726, closes #8446, closes #21221, closes #7461, closes #7995
Diffstat (limited to 'tests/template/tgenericparam.nim')
-rw-r--r-- | tests/template/tgenericparam.nim | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/template/tgenericparam.nim b/tests/template/tgenericparam.nim index d33f55cf7..becf75d36 100644 --- a/tests/template/tgenericparam.nim +++ b/tests/template/tgenericparam.nim @@ -36,7 +36,7 @@ block: # basic template generic parameter substitution template run[T](): T = default(T) doAssert run[int]() == 0 -import options, tables +import options, tables, typetraits block: # complex cases of above with imports block: # issue #19576, complex case @@ -78,3 +78,16 @@ block: # complex cases of above with imports else: Foo.init(A,"hi") let op = fromOption(some(5)) + block: # issue #7461 + template p[T](): untyped = none(T) + doAssert p[int]() == none(int) + block: # issue #7995 + var res: string + template copyRange[T](dest: seq[T], destOffset: int) = + when supportsCopyMem(T): + res = "A" + else: + res = "B" + var a = @[1, 2, 3] + copyRange(a, 0) + doAssert res == "A" |