Tcl Source Code

Artifact [af51b5a603]
Login

Artifact af51b5a603c9fed5406f534309406d5f3a292802:

Attachment "show.tcl" to ticket [3075155fff] added by msofer 2010-09-27 17:08:08.
proc show obj {
     $obj y
    puts [list [$obj y] [lsort [info object vars $obj]] [$obj eval {info vars *!}]]
}

oo::class create foo {
    variable x!
    constructor {} {set x! 1}
    method y {} {incr x!}
}

foo create bar
oo::objdefine bar {
    variable y!
    method y {} {list [next] [incr y!] [info var] [info local]}
    export eval
}
show bar

proc myIncr x {uplevel 1 [list incr $x]}
foo create sum0
oo::objdefine sum0 {
    set name y!
    variable $name
    method y {} {list [next] [myIncr y!] [info var] [info local]}
    export eval
}
show sum0

foo create sum1
set incr incr
oo::objdefine sum1 {
    set name y!
    variable $name
    method y {} {list [next] [$::incr y!] [info var] [info local]}
    export eval
}
show sum1