diff options
Diffstat (limited to 'tests/template/template_issues.nim')
-rw-r--r-- | tests/template/template_issues.nim | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/tests/template/template_issues.nim b/tests/template/template_issues.nim index d12b3c3ef..58c40941d 100644 --- a/tests/template/template_issues.nim +++ b/tests/template/template_issues.nim @@ -173,7 +173,7 @@ block t2585: st echo "a ", $fb - proc render(rdat: var RenderData; passes: var openarray[RenderPass]; proj: Mat2; + proc render(rdat: var RenderData; passes: var openArray[RenderPass]; proj: Mat2; indexType = 1) = for i in 0 ..< len(passes): echo "blah ", repr(passes[i]) @@ -256,7 +256,7 @@ discard foo() type IteratorF*[In] = iterator() : In {.closure.} -template foof(In: untyped) : untyped = +template foof(In: untyped) : untyped = proc ggg*(arg: IteratorF[In]) = for i in arg(): echo "foo" @@ -265,7 +265,7 @@ template foof(In: untyped) : untyped = iterator hello() : int {.closure.} = for i in 1 .. 3: yield i - + foof(int) ggg(hello) @@ -274,3 +274,31 @@ ggg(hello) var z = 10'u8 echo z < 9 # Works echo z > 9 # Error: type mismatch + + +# bug #5993 +template foo(p: proc) = + var bla = 5 + p(bla) + +foo() do(t: var int): + discard + t = 5 + +proc bar(t: var int) = + t = 5 + +foo(bar) + +block: # bug #12595 + template test() = + let i = 42 + discard {i: ""} + + test() + +block: # bug #21920 + template t[T](): T = + discard + + t[void]() # Error: expression has no type: discard |