Index: generic/xotcl.c =================================================================== diff -u -r3754364287df2dfdf79b81dfa69224eae19cf691 -rd9c5a4b5c33bfa0bdb33ef52bd703390d933eb98 --- generic/xotcl.c (.../xotcl.c) (revision 3754364287df2dfdf79b81dfa69224eae19cf691) +++ generic/xotcl.c (.../xotcl.c) (revision d9c5a4b5c33bfa0bdb33ef52bd703390d933eb98) @@ -12059,6 +12059,7 @@ */ static int XOTclObjectpropertyCmd(Tcl_Interp *interp, int objectkind, Tcl_Obj *obj) { int success = TCL_ERROR; + /*Tcl_Obj *obj = object->cmdName;*/ XOTclObject *object; /* fprintf(stderr, "XOTclObjectpropertyCmd\n");*/ Index: library/nx/nx.tcl =================================================================== diff -u -r3754364287df2dfdf79b81dfa69224eae19cf691 -rd9c5a4b5c33bfa0bdb33ef52bd703390d933eb98 --- library/nx/nx.tcl (.../nx.tcl) (revision 3754364287df2dfdf79b81dfa69224eae19cf691) +++ library/nx/nx.tcl (.../nx.tcl) (revision d9c5a4b5c33bfa0bdb33ef52bd703390d933eb98) @@ -853,7 +853,7 @@ :alias "info has mixin" ::nsf::cmd::ObjectInfo::hasmixin :alias "info has namespace" ::nsf::cmd::ObjectInfo::hasnamespace :alias "info has type" ::nsf::cmd::ObjectInfo::hastype - :method "info is" {kind} {::nsf::objectproperty [::nsf::current object] $kind} + :method "info is" {kind} {::nsf::objectproperty $kind [::nsf::current object]} :alias "info methods" ::nsf::cmd::ObjectInfo::methods :alias "info mixin guard" ::nsf::cmd::ObjectInfo::mixinguard :alias "info mixin classes" ::nsf::cmd::ObjectInfo::mixinclasses @@ -1340,7 +1340,7 @@ if {![::nsf::dispatch $slot ::nsf::cmd::ObjectInfo::hastype ::nx::Slot]} continue # Skip some slots for xotcl; # TODO: maybe different parameterFromSlots for xotcl? - if {[::nsf::objectproperty class ::xotcl::Object] + if {[::nsf::is ::xotcl::Object class] && [::nsf::dispatch $obj ::nsf::cmd::ObjectInfo::hastype ::xotcl::Object] && ([$slot name] eq "mixin" || [$slot name] eq "filter") } continue @@ -1835,11 +1835,12 @@ set m [ScopedNew new -volatile \ -container $object -withclass $class] Class mixin add $m end - # TODO: the following is not pretty; however, contains might build xotcl1 and next objects. - if {[::nsf::objectproperty class ::xotcl::Class]} {::xotcl::Class instmixin add $m end} + # TODO: the following is not pretty; however, contains might + # build xotcl and next objects. + if {[::nsf::is ::xotcl::Class class]} {::xotcl::Class instmixin add $m end} namespace eval $object $cmds Class mixin delete $m - if {[::nsf::objectproperty class ::xotcl::Class]} {::xotcl::Class instmixin delete $m} + if {[::nsf::is ::xotcl::Class class]} {::xotcl::Class instmixin delete $m} } else { namespace eval $object $cmds } Index: tests/object-system.tcl =================================================================== diff -u -r0ad59e020dff4060ad63fc059de236d9db183eff -rd9c5a4b5c33bfa0bdb33ef52bd703390d933eb98 --- tests/object-system.tcl (.../object-system.tcl) (revision 0ad59e020dff4060ad63fc059de236d9db183eff) +++ tests/object-system.tcl (.../object-system.tcl) (revision d9c5a4b5c33bfa0bdb33ef52bd703390d933eb98) @@ -188,7 +188,7 @@ C - -? {::nsf::objectproperty class ::C} 0 +? {::nsf::isobject ::C} 0 ::nx::Class create ::C Index: tests/parameters.tcl =================================================================== diff -u -r3754364287df2dfdf79b81dfa69224eae19cf691 -rd9c5a4b5c33bfa0bdb33ef52bd703390d933eb98 --- tests/parameters.tcl (.../parameters.tcl) (revision 3754364287df2dfdf79b81dfa69224eae19cf691) +++ tests/parameters.tcl (.../parameters.tcl) (revision d9c5a4b5c33bfa0bdb33ef52bd703390d933eb98) @@ -24,6 +24,14 @@ Class create M c1 mixin M + + ? {::nsf::isobject o1} 1 + ? {::nsf::isobject o1000} 0 + + ? {::nsf::objectproperty class C} 1 + ? {::nsf::is C class} 1 + ? {C info is class} 1 + ? {::nsf::parametercheck object o1} 1 ? {::nsf::parametercheck -nocomplain object o1} 1 ? {::nsf::parametercheck -nocomplain object o1000} 0 @@ -35,10 +43,8 @@ ? {c1 info has mixin ::M} 1 ? {c1 info has mixin ::M1} {expected class but got "::M1" for parameter class} #? {::nsf::parametercheck hasmixin,arg=::M c1} 1 + - ? {::nsf::isobject o1} 1 - ? {::nsf::isobject o1000} 0 - #? {::nsf::objectproperty type c1 C} 1 ? {c1 info has type C} 1 ? {c1 info has type C1} {expected class but got "C1" for parameter class}