Index: generic/predefined.h =================================================================== diff -u -rc11ab22190bdfe6231b454e9969b6ffafb547f9c -rafa1cb8064311ef406ae50c499c026c8576393f8 --- generic/predefined.h (.../predefined.h) (revision c11ab22190bdfe6231b454e9969b6ffafb547f9c) +++ generic/predefined.h (.../predefined.h) (revision afa1cb8064311ef406ae50c499c026c8576393f8) @@ -223,7 +223,9 @@ "return $parameterdefinitions}\n" "::xotcl2::Object method objectparameter {} {\n" "set parameterdefinitions [::xotcl::parametersFromSlots [self]]\n" -"lappend parameterdefinitions args\n" +"if {[::xotcl::is [self] class]} {\n" +"lappend parameterdefinitions -parameter:method,optional}\n" +"lappend parameterdefinitions -noinit:method,optional,noarg -volatile:method,optional,noarg arg:initcmd,optional\n" "return $parameterdefinitions}\n" "proc createBootstrapAttributeSlots {class definitions} {\n" "if {![::xotcl::is ${class}::slot object]} {\n" @@ -339,6 +341,7 @@ "::xotcl::InterceptorSlot create ${os}::Class::slot::instfilter \\\n" "-elementtype \"\" \\\n" "-type relation}\n" +"::xotcl::MetaSlot invalidateobjectparameter\n" "::xotcl::MetaSlot create ::xotcl::Attribute -superclass ::xotcl::Slot\n" "::xotcl::relation ::xotcl::Attribute superclass ::xotcl::Slot\n" "createBootstrapAttributeSlots ::xotcl::Attribute {\n" @@ -391,20 +394,21 @@ "\\[list [::xotcl::self] __value_changed_cmd \\[::xotcl::self\\] [list [set .valuechangedcmd]]\\]\"}\n" "if {$__initcmd ne \"\"} {\n" "set .initcmd $__initcmd}}\n" -"::xotcl2::Class create ::xotcl::Slot::Nocheck \\\n" -"-method check_single_value args {;} -method check_multiple_values args {;} \\\n" -"-method mk_type_checker args {return \"\"}\n" -"::xotcl2::Class create ::xotcl::Slot::Optimizer \\\n" -"-method proc args {::xotcl::next; .optimize} \\\n" -"-method forward args {::xotcl::next; .optimize} \\\n" -"-method init args {::xotcl::next; .optimize} \\\n" -"-method optimize {} {\n" +"::xotcl2::Class create ::xotcl::Slot::Nocheck {\n" +".method check_single_value args {;}\n" +".method check_multiple_values args {;}\n" +".method mk_type_checker args {return \"\"}}\n" +"::xotcl2::Class create ::xotcl::Slot::Optimizer {\n" +".method proc args {::xotcl::next; .optimize}\n" +".method forward args {::xotcl::next; .optimize}\n" +".method init args {::xotcl::next; .optimize}\n" +".method optimize {} {\n" "if {[set .multivalued]} return\n" "if {[set .defaultmethods] ne {get assign}} return\n" "if {[.procsearch assign] ne \"::xotcl::Slot instcmd assign\"} return\n" "if {[.procsearch get] ne \"::xotcl::Slot instcmd get\"} return\n" "set forwarder [expr {[set .per-object] ? \"parametercmd\":\"instparametercmd\"}]\n" -"${.domain} $forwarder ${.name}}\n" +"${.domain} $forwarder ${.name}}}\n" "::xotcl::Attribute instmixin add ::xotcl::Slot::Optimizer\n" "::xotcl2::Class create ::xotcl::ScopedNew -superclass ::xotcl2::Class\n" "createBootstrapAttributeSlots ::xotcl::ScopedNew {\n"