diff options
author | Zahary Karadjov <zahary@gmail.com> | 2017-04-16 14:14:14 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2017-04-16 14:14:14 +0300 |
commit | 3571a8d2f1420ad6f47ffd0c527520de6721dfb0 (patch) | |
tree | 16c42ca82f276ecb7a47910e4e64828ec19cc499 /tests/concepts | |
parent | 4da8536701516f88cf2a04152abb8d8a276042d6 (diff) | |
download | Nim-3571a8d2f1420ad6f47ffd0c527520de6721dfb0.tar.gz |
more sophisticated test for the previous commit
Diffstat (limited to 'tests/concepts')
-rw-r--r-- | tests/concepts/tconceptinclosure.nim | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/tests/concepts/tconceptinclosure.nim b/tests/concepts/tconceptinclosure.nim index ccd19d201..23c1bf293 100644 --- a/tests/concepts/tconceptinclosure.nim +++ b/tests/concepts/tconceptinclosure.nim @@ -1,11 +1,23 @@ discard """ - output: "10\n20" + output: ''' +10 +20 +int +20 +3 +''' """ +import typetraits + type FonConcept = concept x x.x is int + GenericConcept[T] = concept x + x.x is T + const L = T.name.len + Implementation = object x: int @@ -16,9 +28,15 @@ proc f1(x: FonConcept): Closure = result.f = proc () = echo x.x -proc f2(x: FonConcept): Closure = +proc f2(x: GenericConcept): Closure = + result.f = proc () = + echo x.x + echo GenericConcept.T.name + +proc f3[T](x: GenericConcept[T]): Closure = result.f = proc () = echo x.x + echo x.L let x = Implementation(x: 10) let y = Implementation(x: 20) @@ -27,7 +45,9 @@ let a = x.f1 let b = x.f2 let c = x.f1 let d = y.f2 +let e = y.f3 a.f() d.f() +e.f() |