diff options
author | Arne Döring <arne.doering@gmx.net> | 2019-10-17 09:55:41 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-10-17 09:55:41 +0200 |
commit | 21cbfd72ec9fce04fab98326376651806c8adf0b (patch) | |
tree | bbdfd560551627b11a292c2f5913fae7d1104c98 /tests/generics/tforwardgenericconstrained.nim | |
parent | 5ba932e43c9c971555d8fdc9e25e2edcdcdd70b4 (diff) | |
download | Nim-21cbfd72ec9fce04fab98326376651806c8adf0b.tar.gz |
Refactor json macro (#12391)
* closes #12316 * make tjsonmacro work at js target * closes #12289 * closes #11988 * also fixed gdb related stuff
Diffstat (limited to 'tests/generics/tforwardgenericconstrained.nim')
-rw-r--r-- | tests/generics/tforwardgenericconstrained.nim | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/generics/tforwardgenericconstrained.nim b/tests/generics/tforwardgenericconstrained.nim new file mode 100644 index 000000000..6163ea1a8 --- /dev/null +++ b/tests/generics/tforwardgenericconstrained.nim @@ -0,0 +1,73 @@ +discard """ +output: ''' +hello some integer +hello range +hello tuple +hello seq +hello object +hello distinct +hello enum +''' +""" + + + +# SomeInteger + +proc foo[T : SomeInteger](arg: T) +proc foo[T : SomeInteger](arg: T) = + echo "hello some integer" +foo(123) + +# range + +proc foo2[T : range[0..100]](arg: T) +proc foo2[T : range[0..100]](arg: T) = + echo "hello range" +foo2(7) + +# tuple + +proc foo3[T : tuple](arg: T) +proc foo3[T : tuple](arg: T) = + echo "hello tuple" + +foo3((a:123,b:321)) + +# seq + +proc foo4[T: seq](arg: T) +proc foo4[T: seq](arg: T) = + echo "hello seq" + +foo4(@[1,2,3]) + +# object + +proc foo5[T : object](arg: T) +proc foo5[T : object](arg: T) = + echo "hello object" + +type MyType = object +var mt: MyType +foo5(mt) + +# distinct + +proc foo6[T : distinct](arg: T) +proc foo6[T : distinct](arg: T) = + echo "hello distinct" + +type MyDistinct = distinct string +var md: MyDistinct +foo6(md) + +# enum + +proc foo7[T : enum](arg: T) +proc foo7[T : enum](arg: T) = + echo "hello enum" + +type MyEnum = enum + ValueA +foo7(ValueA) |