From 3571a8d2f1420ad6f47ffd0c527520de6721dfb0 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Sun, 16 Apr 2017 14:14:14 +0300 Subject: [PATCH] more sophisticated test for the previous commit --- tests/concepts/tconceptinclosure.nim | 24 ++++++++++++++++++++++-- 1 file 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()