diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/generics/t8694.nim | 31 | ||||
-rw-r--r-- | tests/generics/t9130.nim | 33 |
2 files changed, 64 insertions, 0 deletions
diff --git a/tests/generics/t8694.nim b/tests/generics/t8694.nim new file mode 100644 index 000000000..da6c6dbed --- /dev/null +++ b/tests/generics/t8694.nim @@ -0,0 +1,31 @@ +discard """ + output: ''' +true +true +true +''' +""" + +when true: + # Error: undeclared identifier: '|' + proc bar[T](t:T): bool = + runnableExamples: + type Foo = int | float + true + echo bar(0) + +when true: + # ok + proc bar(t:int): bool = + runnableExamples: + type Foo = int | float + true + echo bar(0) + +when true: + # Error: undeclared identifier: '|' + proc bar(t:typedesc): bool = + runnableExamples: + type Foo = int | float + true + echo bar(int) diff --git a/tests/generics/t9130.nim b/tests/generics/t9130.nim new file mode 100644 index 000000000..a993bc6b2 --- /dev/null +++ b/tests/generics/t9130.nim @@ -0,0 +1,33 @@ +when true: + # stack overflow + template baz1*(iter: untyped): untyped = + runnableExamples: + import sugar + proc fun(a: proc(x:int): int) = discard + baz1(fun(x:int => x)) + discard + + proc foo1[A](ts: A) = + baz1(ts) + +when true: + # ok + template baz2*(iter: untyped): untyped = + runnableExamples: + import sugar + proc fun(a: proc(x:int): int) = discard + baz2(fun(x:int => x)) + discard + + proc foo2(ts: int) = + baz2(ts) + +when true: + # stack overflow + template baz3*(iter: untyped): untyped = + runnableExamples: + baz3(fun(x:int => x)) + discard + + proc foo3[A](ts: A) = + baz3(ts) |