summary refs log tree commit diff stats
path: root/tests/concepts
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2017-04-16 14:14:14 +0300
committerZahary Karadjov <zahary@gmail.com>2017-04-16 14:14:14 +0300
commit3571a8d2f1420ad6f47ffd0c527520de6721dfb0 (patch)
tree16c42ca82f276ecb7a47910e4e64828ec19cc499 /tests/concepts
parent4da8536701516f88cf2a04152abb8d8a276042d6 (diff)
downloadNim-3571a8d2f1420ad6f47ffd0c527520de6721dfb0.tar.gz
more sophisticated test for the previous commit
Diffstat (limited to 'tests/concepts')
-rw-r--r--tests/concepts/tconceptinclosure.nim24
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()