summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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()