more sophisticated test for the previous commit
This commit is contained in:
parent
4da8536701
commit
3571a8d2f1
1 changed files with 22 additions and 2 deletions
|
|
@ -1,11 +1,23 @@
|
||||||
discard """
|
discard """
|
||||||
output: "10\n20"
|
output: '''
|
||||||
|
10
|
||||||
|
20
|
||||||
|
int
|
||||||
|
20
|
||||||
|
3
|
||||||
|
'''
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import typetraits
|
||||||
|
|
||||||
type
|
type
|
||||||
FonConcept = concept x
|
FonConcept = concept x
|
||||||
x.x is int
|
x.x is int
|
||||||
|
|
||||||
|
GenericConcept[T] = concept x
|
||||||
|
x.x is T
|
||||||
|
const L = T.name.len
|
||||||
|
|
||||||
Implementation = object
|
Implementation = object
|
||||||
x: int
|
x: int
|
||||||
|
|
||||||
|
|
@ -16,9 +28,15 @@ proc f1(x: FonConcept): Closure =
|
||||||
result.f = proc () =
|
result.f = proc () =
|
||||||
echo x.x
|
echo x.x
|
||||||
|
|
||||||
proc f2(x: FonConcept): Closure =
|
proc f2(x: GenericConcept): Closure =
|
||||||
result.f = proc () =
|
result.f = proc () =
|
||||||
echo x.x
|
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 x = Implementation(x: 10)
|
||||||
let y = Implementation(x: 20)
|
let y = Implementation(x: 20)
|
||||||
|
|
@ -27,7 +45,9 @@ let a = x.f1
|
||||||
let b = x.f2
|
let b = x.f2
|
||||||
let c = x.f1
|
let c = x.f1
|
||||||
let d = y.f2
|
let d = y.f2
|
||||||
|
let e = y.f3
|
||||||
|
|
||||||
a.f()
|
a.f()
|
||||||
d.f()
|
d.f()
|
||||||
|
e.f()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue