Index: library/nx/nx.tcl =================================================================== diff -u -r76f87e0664b26cfcd11ae3dc817303c97b553e5c -r1d20679c48b53f85dcfd6d0be12a06c0776e797d --- library/nx/nx.tcl (.../nx.tcl) (revision 76f87e0664b26cfcd11ae3dc817303c97b553e5c) +++ library/nx/nx.tcl (.../nx.tcl) (revision 1d20679c48b53f85dcfd6d0be12a06c0776e797d) @@ -38,7 +38,7 @@ # foreach cmd [info command ::nsf::methods::object::*] { set cmdName [namespace tail $cmd] - if {$cmdName in [list "autoname" "cleanup" "configure" "exists" \ + if {$cmdName in [list "autoname" "cleanup" "exists" \ "filterguard" "instvar" "mixinguard" \ "noinit" "requirenamespace"]} continue ::nsf::method::alias Object $cmdName $cmd @@ -1032,12 +1032,9 @@ # Register system slots ############################################ proc register_system_slots {os} { - - # method "class" is a plain forwarder to relation (no slot) - ::nsf::method::forward ${os}::Object class ::nsf::relation %self class - - # all other relation cmds are defined as slots - + # + # Most system slots are RelationSlots + # ::nx::RelationSlot create ${os}::Class::slot::superclass \ -default ${os}::Object @@ -1060,12 +1057,24 @@ ::nx::ObjectParameterSlot create ${os}::Class::slot::object-filter \ -methodname "::nsf::classes::nx::Object::filter" + # + # Create object parameter slots for "attributes", "noninit" and "volatile" + # ::nx::ObjectParameterSlot create ${os}::Class::slot::attributes ::nx::ObjectParameterSlot create ${os}::Object::slot::noinit \ -methodname ::nsf::methods::object::noinit -noarg true ::nx::ObjectParameterSlot create ${os}::Object::slot::volatile -noarg true # + # create "class" as a ObjectParameterSlot + # + # method "class" is a plain forwarder to relation (no slot) + #::nsf::method::forward ${os}::Object class ::nsf::relation %self class + + ::nx::ObjectParameterSlot create ${os}::Object::slot::class \ + -methodname "::nsf::relation %self class" -disposition forward + + # # Define method "guard" for mixin- and filter-slots of Object and Class # ${os}::Object::slot::filter method guard {obj prop filter guard:optional} {