more sophisticated test for the previous commit

This commit is contained in:
Zahary Karadjov
2017-04-16 14:14:14 +03:00
parent 4da8536701
commit 3571a8d2f1

View File

@@ -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()