Index: generic/predefined.h =================================================================== diff -u -ra59ed987404cf38f027209a4e140569c62721bd6 -r962c96dcc0ddc25782570a831c104fb2b955891d --- generic/predefined.h (.../predefined.h) (revision a59ed987404cf38f027209a4e140569c62721bd6) +++ generic/predefined.h (.../predefined.h) (revision 962c96dcc0ddc25782570a831c104fb2b955891d) @@ -33,7 +33,6 @@ "set prefix class}\n" "set result [::xotcl::dispatch [self] ::xotcl::cmd::${cls}::$prefix-method \\\n" "$name $arguments $body {*}$conditions]\n" -"puts stderr result=$result\n" "if {$protected} {::xotcl::methodproperty [self] $name protected true}\n" "return $result}\n" "::xotcl::dispatch Object ::xotcl::cmd::Class::class-method method {\n" @@ -44,12 +43,26 @@ "if {[info exists postcondition]} {lappend conditions -postcondition $postcondition}\n" "set result [::xotcl::dispatch [self] ::xotcl::cmd::Object::object-method \\\n" "$name $arguments $body {*}$conditions]\n" -"puts stderr result=$result\n" "if {$protected} {::xotcl::methodproperty [self] $name -per-object protected true}\n" "return $result}\n" -"Class method unknown {args} {\n" -"puts stderr \"use '[self] create $args', not '[self] $args'\"\n" -"eval my create $args}\n" +"Object method -public public {args} {\n" +"set p [lsearch -regexp $args {^(method|alias|forward|setter)$}]\n" +"if {$p == -1} {error \"$args is not a method defining method\"}\n" +"set r [{*}.$args]\n" +"::xotcl::methodproperty [self] $r protected false\n" +"return $r}\n" +"Object method -public protected {args} {\n" +"set p [lsearch -regexp $args {^(method|alias|forward|setter)$}]\n" +"if {$p == -1} {error \"$args is not a method defining command\"}\n" +"set r [{*}.$args]\n" +"::xotcl::methodproperty [self] $r [self proc] true\n" +"return $r}\n" +"Class method -public object {args} {\n" +"set p [expr {[lsearch -regexp $args {^(method|alias|forward|setter)$}] + 1}]\n" +"set cmd [linsert $args $p \"-per-object\"]\n" +"return [{*}.$cmd]}\n" +"Class method unknown {m args} {\n" +"error \"Method '$m' unknown for [self]. Consider '[self] create $m $args' instead of '[self] $m $args'\"}\n" "Object method unknown {m args} {\n" "if {![self isnext]} {\n" "error \"[self]: unable to dispatch method '$m'\"}}\n"