lift generic parameters from concrete composite type classes
This commit is contained in:
parent
a27eb51535
commit
a59f13b00d
5 changed files with 40 additions and 25 deletions
|
|
@ -13,18 +13,23 @@ type
|
|||
|
||||
TUserClass = int|string
|
||||
|
||||
# TBaz = TBar[TUserClass]
|
||||
TBaz = TBar[TUserClass]
|
||||
|
||||
var
|
||||
vfoo: TFoo[int, string]
|
||||
vbar: TFoo[string, string]
|
||||
vbaz: TFoo[int, int]
|
||||
vnotbaz: TFoo[TObject, TObject]
|
||||
|
||||
proc foo(x: TFoo) = echo "foo"
|
||||
proc bar(x: TBar) = echo "bar"
|
||||
# proc baz(x: TBaz) = echo "baz"
|
||||
proc baz(x: TBaz) = echo "baz"
|
||||
|
||||
accept(foo(vfoo))
|
||||
accept(bar(vbar))
|
||||
# baz vbar
|
||||
reject(bar(vfoo))
|
||||
accept foo(vfoo)
|
||||
accept bar(vbar)
|
||||
accept baz(vbar)
|
||||
accept baz(vbaz)
|
||||
|
||||
reject baz(vnotbaz)
|
||||
reject bar(vfoo)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue