Index: TODO =================================================================== diff -u -r77104533a2105611e79a6723ece344e0ae6dc016 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- TODO (.../TODO) (revision 77104533a2105611e79a6723ece344e0ae6dc016) +++ TODO (.../TODO) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -1665,6 +1665,9 @@ - made the following function static to avoid pollution of the global link namespace: CompiledColonVarFree(), GetRegObject(), ParamGetType() +- changed option -expand in "info methods" and "info lookup methods" into + "-path" to associate with the method path + TODO: - cleanup of xotcl-aol Index: generic/gentclAPI.decls =================================================================== diff -u -r0c534a6693afbced7859c4189b62e712acc8f955 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- generic/gentclAPI.decls (.../gentclAPI.decls) (revision 0c534a6693afbced7859c4189b62e712acc8f955) +++ generic/gentclAPI.decls (.../gentclAPI.decls) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -256,10 +256,10 @@ } objectInfoMethod lookupmethods NsfObjInfoLookupMethodsMethod { {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default all} - {-argName "-expand"} {-argName "-incontext"} {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-nomixins"} + {-argName "-path"} {-argName "-source" -nrargs 1 -type "all|application|baseclasses"} {-argName "pattern" -required 0} } @@ -271,11 +271,11 @@ {-argName "name" -type tclobj} } objectInfoMethod methods NsfObjInfoMethodsMethod { - {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default public} - {-argName "-expand"} - {-argName "-nomixins"} {-argName "-incontext"} + {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} + {-argName "-nomixins"} + {-argName "-path"} {-argName "pattern"} } @@ -324,11 +324,11 @@ {-argName "name" -type tclobj} } classInfoMethod methods NsfClassInfoMethodsMethod { - {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default public} - {-argName "-expand"} - {-argName "-nomixins"} {-argName "-incontext"} + {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} + {-argName "-nomixins"} + {-argName "-path"} {-argName "pattern"} } classInfoMethod mixinclasses NsfClassInfoMixinclassesMethod { Index: generic/nsf.c =================================================================== diff -u -r77104533a2105611e79a6723ece344e0ae6dc016 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- generic/nsf.c (.../nsf.c) (revision 77104533a2105611e79a6723ece344e0ae6dc016) +++ generic/nsf.c (.../nsf.c) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -15405,21 +15405,21 @@ /* objectInfoMethod lookupmethods NsfObjInfoLookupMethodsMethod { {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default all} - {-argName "-expand"} {-argName "-incontext"} {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-nomixins"} + {-argName "-path"} {-argName "-source" -nrargs 1 -type "all|application|baseclasses"} {-argName "pattern" -required 0} } */ static int NsfObjInfoLookupMethodsMethod(Tcl_Interp *interp, NsfObject *object, int withCallprotection, - int withExpand, int withIncontext, int withMethodtype, int withNomixins, + int withPath, int withSource, CONST char *pattern) { NsfClasses *pl; @@ -15445,7 +15445,7 @@ cmdTablePtr = Tcl_Namespace_cmdTablePtr(object->nsPtr); if (MethodSourceMatches(interp, withSource, NULL, object)) { ListMethodKeys(interp, cmdTablePtr, NULL, pattern, methodType, - withCallprotection, withExpand, + withCallprotection, withPath, dups, object, withPer_object); } } @@ -15469,7 +15469,7 @@ Tcl_HashTable *cmdTablePtr = Tcl_Namespace_cmdTablePtr(mixin->nsPtr); if (!MethodSourceMatches(interp, withSource, mixin, NULL)) continue; ListMethodKeys(interp, cmdTablePtr, NULL, pattern, methodType, - withCallprotection, withExpand, + withCallprotection, withPath, dups, object, withPer_object); } } @@ -15481,7 +15481,7 @@ Tcl_HashTable *cmdTablePtr = Tcl_Namespace_cmdTablePtr(pl->cl->nsPtr); if (!MethodSourceMatches(interp, withSource, pl->cl, NULL)) continue; ListMethodKeys(interp, cmdTablePtr, NULL, pattern, methodType, - withCallprotection, withExpand, + withCallprotection, withPath, dups, object, withPer_object); } Tcl_DeleteHashTable(dups); @@ -15541,21 +15541,25 @@ /* objectInfoMethod methods NsfObjInfoMethodsMethod { - {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default public} - {-argName "-expand"} - {-argName "-nomixins"} {-argName "-incontext"} + {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} + {-argName "-nomixins"} + {-argName "-path"} {-argName "pattern"} } */ static int NsfObjInfoMethodsMethod(Tcl_Interp *interp, NsfObject *object, - int withMethodtype, int withCallproctection, int withExpand, - int withNomixins, int withIncontext, CONST char *pattern) { + int withCallproctection, + int withIncontext, + int withMethodtype, + int withNomixins, + int withPath, + CONST char *pattern) { return ListDefinedMethods(interp, object, pattern, 1 /* per-object */, AggregatedMethodType(withMethodtype), withCallproctection, - withExpand, withNomixins, withIncontext); + withPath, withNomixins, withIncontext); } /* @@ -15792,22 +15796,25 @@ /* classInfoMethod methods NsfClassInfoMethodsMethod { - {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} {-argName "-callprotection" -nrargs 1 -type "all|protected|public" -default public} - {-argName "-expand"} - {-argName "-nomixins"} {-argName "-incontext"} + {-argName "-methodtype" -nrargs 1 -type "all|scripted|builtin|alias|forwarder|object|setter"} + {-argName "-nomixins"} + {-argName "-path"} {-argName "pattern"} } */ static int NsfClassInfoMethodsMethod(Tcl_Interp *interp, NsfClass *class, - int withMethodtype, int withCallproctection, - int withExpand, int withNomixins, int withIncontext, + int withCallproctection, + int withIncontext, + int withMethodtype, + int withNomixins, + int withPath, CONST char *pattern) { return ListDefinedMethods(interp, &class->object, pattern, 0 /* per-object */, AggregatedMethodType(withMethodtype), withCallproctection, - withExpand, withNomixins, withIncontext); + withPath, withNomixins, withIncontext); } /* Index: generic/tclAPI.h =================================================================== diff -u -r0c534a6693afbced7859c4189b62e712acc8f955 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- generic/tclAPI.h (.../tclAPI.h) (revision 0c534a6693afbced7859c4189b62e712acc8f955) +++ generic/tclAPI.h (.../tclAPI.h) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -10,27 +10,27 @@ } enum InfomethodsubcmdIdx {InfomethodsubcmdNULL, InfomethodsubcmdArgsIdx, InfomethodsubcmdBodyIdx, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdHandleIdx, InfomethodsubcmdParameterIdx, InfomethodsubcmdParametersyntaxIdx, InfomethodsubcmdTypeIdx, InfomethodsubcmdPreconditionIdx, InfomethodsubcmdPostconditionIdx, InfomethodsubcmdSubmethodsIdx}; -static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; - static CONST char *opts[] = {"all", "scripted", "builtin", "alias", "forwarder", "object", "setter", NULL}; - result = Tcl_GetIndexFromObj(interp, objPtr, opts, "-methodtype", 0, &index); + static CONST char *opts[] = {"all", "protected", "public", NULL}; + result = Tcl_GetIndexFromObj(interp, objPtr, opts, "-callprotection", 0, &index); *clientData = (ClientData) INT2PTR(index + 1); *outObjPtr = objPtr; return result; } -enum MethodtypeIdx {MethodtypeNULL, MethodtypeAllIdx, MethodtypeScriptedIdx, MethodtypeBuiltinIdx, MethodtypeAliasIdx, MethodtypeForwarderIdx, MethodtypeObjectIdx, MethodtypeSetterIdx}; +enum CallprotectionIdx {CallprotectionNULL, CallprotectionAllIdx, CallprotectionProtectedIdx, CallprotectionPublicIdx}; -static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, +static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { int index, result; - static CONST char *opts[] = {"all", "protected", "public", NULL}; - result = Tcl_GetIndexFromObj(interp, objPtr, opts, "-callprotection", 0, &index); + static CONST char *opts[] = {"all", "scripted", "builtin", "alias", "forwarder", "object", "setter", NULL}; + result = Tcl_GetIndexFromObj(interp, objPtr, opts, "-methodtype", 0, &index); *clientData = (ClientData) INT2PTR(index + 1); *outObjPtr = objPtr; return result; } -enum CallprotectionIdx {CallprotectionNULL, CallprotectionAllIdx, CallprotectionProtectedIdx, CallprotectionPublicIdx}; +enum MethodtypeIdx {MethodtypeNULL, MethodtypeAllIdx, MethodtypeScriptedIdx, MethodtypeBuiltinIdx, MethodtypeAliasIdx, MethodtypeForwarderIdx, MethodtypeObjectIdx, MethodtypeSetterIdx}; static int ConvertToScope(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfParam CONST *pPtr, ClientData *clientData, Tcl_Obj **outObjPtr) { @@ -242,7 +242,7 @@ static int NsfClassInfoHeritageMethod(Tcl_Interp *interp, NsfClass *cl, CONST char *pattern); static int NsfClassInfoInstancesMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, CONST char *patternString, NsfObject *patternObj); static int NsfClassInfoMethodMethod(Tcl_Interp *interp, NsfClass *cl, int infomethodsubcmd, Tcl_Obj *name); -static int NsfClassInfoMethodsMethod(Tcl_Interp *interp, NsfClass *cl, int withMethodtype, int withCallprotection, int withExpand, int withNomixins, int withIncontext, CONST char *pattern); +static int NsfClassInfoMethodsMethod(Tcl_Interp *interp, NsfClass *cl, int withCallprotection, int withIncontext, int withMethodtype, int withNomixins, int withPath, CONST char *pattern); static int NsfClassInfoMixinOfMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, int withScope, CONST char *patternString, NsfObject *patternObj); static int NsfClassInfoMixinclassesMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, int withGuards, CONST char *patternString, NsfObject *patternObj); static int NsfClassInfoMixinguardMethod(Tcl_Interp *interp, NsfClass *cl, CONST char *mixin); @@ -302,10 +302,10 @@ static int NsfObjInfoIsMethod(Tcl_Interp *interp, NsfObject *obj, int objectkind); static int NsfObjInfoLookupFilterMethod(Tcl_Interp *interp, NsfObject *obj, CONST char *filter); static int NsfObjInfoLookupMethodMethod(Tcl_Interp *interp, NsfObject *obj, Tcl_Obj *name); -static int NsfObjInfoLookupMethodsMethod(Tcl_Interp *interp, NsfObject *obj, int withCallprotection, int withExpand, int withIncontext, int withMethodtype, int withNomixins, int withSource, CONST char *pattern); +static int NsfObjInfoLookupMethodsMethod(Tcl_Interp *interp, NsfObject *obj, int withCallprotection, int withIncontext, int withMethodtype, int withNomixins, int withPath, int withSource, CONST char *pattern); static int NsfObjInfoLookupSlotsMethod(Tcl_Interp *interp, NsfObject *obj, NsfClass *withType); static int NsfObjInfoMethodMethod(Tcl_Interp *interp, NsfObject *obj, int infomethodsubcmd, Tcl_Obj *name); -static int NsfObjInfoMethodsMethod(Tcl_Interp *interp, NsfObject *obj, int withMethodtype, int withCallprotection, int withExpand, int withNomixins, int withIncontext, CONST char *pattern); +static int NsfObjInfoMethodsMethod(Tcl_Interp *interp, NsfObject *obj, int withCallprotection, int withIncontext, int withMethodtype, int withNomixins, int withPath, CONST char *pattern); static int NsfObjInfoMixinclassesMethod(Tcl_Interp *interp, NsfObject *obj, int withGuards, int withOrder, CONST char *patternString, NsfObject *patternObj); static int NsfObjInfoMixinguardMethod(Tcl_Interp *interp, NsfObject *obj, CONST char *mixin); static int NsfObjInfoParentMethod(Tcl_Interp *interp, NsfObject *obj); @@ -676,15 +676,15 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - int withMethodtype = (int )PTR2INT(pc.clientData[0]); - int withCallprotection = (int )PTR2INT(pc.clientData[1]); - int withExpand = (int )PTR2INT(pc.clientData[2]); + int withCallprotection = (int )PTR2INT(pc.clientData[0]); + int withIncontext = (int )PTR2INT(pc.clientData[1]); + int withMethodtype = (int )PTR2INT(pc.clientData[2]); int withNomixins = (int )PTR2INT(pc.clientData[3]); - int withIncontext = (int )PTR2INT(pc.clientData[4]); + int withPath = (int )PTR2INT(pc.clientData[4]); CONST char *pattern = (CONST char *)pc.clientData[5]; ParseContextRelease(&pc); - return NsfClassInfoMethodsMethod(interp, cl, withMethodtype, withCallprotection, withExpand, withNomixins, withIncontext, pattern); + return NsfClassInfoMethodsMethod(interp, cl, withCallprotection, withIncontext, withMethodtype, withNomixins, withPath, pattern); } } @@ -1843,15 +1843,15 @@ return TCL_ERROR; } else { int withCallprotection = (int )PTR2INT(pc.clientData[0]); - int withExpand = (int )PTR2INT(pc.clientData[1]); - int withIncontext = (int )PTR2INT(pc.clientData[2]); - int withMethodtype = (int )PTR2INT(pc.clientData[3]); - int withNomixins = (int )PTR2INT(pc.clientData[4]); + int withIncontext = (int )PTR2INT(pc.clientData[1]); + int withMethodtype = (int )PTR2INT(pc.clientData[2]); + int withNomixins = (int )PTR2INT(pc.clientData[3]); + int withPath = (int )PTR2INT(pc.clientData[4]); int withSource = (int )PTR2INT(pc.clientData[5]); CONST char *pattern = (CONST char *)pc.clientData[6]; ParseContextRelease(&pc); - return NsfObjInfoLookupMethodsMethod(interp, obj, withCallprotection, withExpand, withIncontext, withMethodtype, withNomixins, withSource, pattern); + return NsfObjInfoLookupMethodsMethod(interp, obj, withCallprotection, withIncontext, withMethodtype, withNomixins, withPath, withSource, pattern); } } @@ -1906,15 +1906,15 @@ &pc) != TCL_OK) { return TCL_ERROR; } else { - int withMethodtype = (int )PTR2INT(pc.clientData[0]); - int withCallprotection = (int )PTR2INT(pc.clientData[1]); - int withExpand = (int )PTR2INT(pc.clientData[2]); + int withCallprotection = (int )PTR2INT(pc.clientData[0]); + int withIncontext = (int )PTR2INT(pc.clientData[1]); + int withMethodtype = (int )PTR2INT(pc.clientData[2]); int withNomixins = (int )PTR2INT(pc.clientData[3]); - int withIncontext = (int )PTR2INT(pc.clientData[4]); + int withPath = (int )PTR2INT(pc.clientData[4]); CONST char *pattern = (CONST char *)pc.clientData[5]; ParseContextRelease(&pc); - return NsfObjInfoMethodsMethod(interp, obj, withMethodtype, withCallprotection, withExpand, withNomixins, withIncontext, pattern); + return NsfObjInfoMethodsMethod(interp, obj, withCallprotection, withIncontext, withMethodtype, withNomixins, withPath, pattern); } } @@ -2081,11 +2081,11 @@ {"name", 0, 0, ConvertToTclobj}} }, {"::nsf::methods::class::info::methods", NsfClassInfoMethodsMethodStub, 6, { - {"-methodtype", 0, 1, ConvertToMethodtype}, {"-callprotection", 0, 1, ConvertToCallprotection}, - {"-expand", 0, 0, ConvertToString}, - {"-nomixins", 0, 0, ConvertToString}, {"-incontext", 0, 0, ConvertToString}, + {"-methodtype", 0, 1, ConvertToMethodtype}, + {"-nomixins", 0, 0, ConvertToString}, + {"-path", 0, 0, ConvertToString}, {"pattern", 0, 0, ConvertToString}} }, {"::nsf::methods::class::info::mixinof", NsfClassInfoMixinOfMethodStub, 3, { @@ -2333,10 +2333,10 @@ }, {"::nsf::methods::object::info::lookupmethods", NsfObjInfoLookupMethodsMethodStub, 7, { {"-callprotection", 0, 1, ConvertToCallprotection}, - {"-expand", 0, 0, ConvertToString}, {"-incontext", 0, 0, ConvertToString}, {"-methodtype", 0, 1, ConvertToMethodtype}, {"-nomixins", 0, 0, ConvertToString}, + {"-path", 0, 0, ConvertToString}, {"-source", 0, 1, ConvertToSource}, {"pattern", 0, 0, ConvertToString}} }, @@ -2348,11 +2348,11 @@ {"name", 0, 0, ConvertToTclobj}} }, {"::nsf::methods::object::info::methods", NsfObjInfoMethodsMethodStub, 6, { - {"-methodtype", 0, 1, ConvertToMethodtype}, {"-callprotection", 0, 1, ConvertToCallprotection}, - {"-expand", 0, 0, ConvertToString}, - {"-nomixins", 0, 0, ConvertToString}, {"-incontext", 0, 0, ConvertToString}, + {"-methodtype", 0, 1, ConvertToMethodtype}, + {"-nomixins", 0, 0, ConvertToString}, + {"-path", 0, 0, ConvertToString}, {"pattern", 0, 0, ConvertToString}} }, {"::nsf::methods::object::info::mixinclasses", NsfObjInfoMixinclassesMethodStub, 3, { Index: library/nx/nx.tcl =================================================================== diff -u -r77104533a2105611e79a6723ece344e0ae6dc016 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- library/nx/nx.tcl (.../nx.tcl) (revision 77104533a2105611e79a6723ece344e0ae6dc016) +++ library/nx/nx.tcl (.../nx.tcl) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -411,7 +411,7 @@ :protected method unknown {obj m args} { set path [current methodpath] #puts stderr "+++ UNKNOWN obj $obj '$m' $args // path '[current methodpath]'" - if {[catch {set valid [$obj ::nsf::methods::object::info::lookupmethods -expand "$path *"]} errorMsg]} { + if {[catch {set valid [$obj ::nsf::methods::object::info::lookupmethods -path "$path *"]} errorMsg]} { set valid "" puts stderr "+++ UNKNOWN raises error $errorMsg" } @@ -423,7 +423,7 @@ set obj [uplevel {current object}] set path [current methodpath] set l [string length $path] - set submethods [$obj ::nsf::methods::object::info::lookupmethods -expand "$path *"] + set submethods [$obj ::nsf::methods::object::info::lookupmethods -path "$path *"] foreach sm $submethods {set results([lindex [string range $sm $l+1 end] 0]) 1} error "Valid submethods of $obj $path: [lsort [array names results]]" } Index: library/serialize/serializer.tcl =================================================================== diff -u -rc3c81c3240fd7e04d5f630d76c62755135691bcf -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- library/serialize/serializer.tcl (.../serializer.tcl) (revision c3c81c3240fd7e04d5f630d76c62755135691bcf) +++ library/serialize/serializer.tcl (.../serializer.tcl) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -616,7 +616,7 @@ return [set $handle] } set needed [list] - foreach alias [$x ::nsf::methods::${where}::info::methods -methodtype alias -callprotection all -expand] { + foreach alias [$x ::nsf::methods::${where}::info::methods -methodtype alias -callprotection all -path] { set definition [$x ::nsf::methods::${where}::info::method definition $alias] set source [$x ::nsf::methods::class::info::method definition [lindex $definition end]] if {$source ne ""} { @@ -713,7 +713,7 @@ append cmd [list ::nx::slotObj [$o ::nsf::methods::object::info::parent]]\n } else { append cmd [list [$o info class] create $objectName -noinit]\n - foreach i [lsort [$o ::nsf::methods::object::info::methods -callprotection all -expand]] { + foreach i [lsort [$o ::nsf::methods::object::info::methods -callprotection all -path]] { append cmd [:method-serialize $o $i "class-object"] "\n" } } @@ -742,7 +742,7 @@ :method Class-serialize {o s} { set cmd [:Object-serialize $o $s] - foreach i [lsort [$o ::nsf::methods::class::info::methods -callprotection all -expand]] { + foreach i [lsort [$o ::nsf::methods::class::info::methods -callprotection all -path]] { append cmd [:method-serialize $o $i ""] "\n" } append cmd \ Index: tests/info-method.tcl =================================================================== diff -u -re70316835cf50554ec304bc7ddadea6743be5c81 -rfdab3b9e05d21cb92835b9128193c7ba329d583d --- tests/info-method.tcl (.../info-method.tcl) (revision e70316835cf50554ec304bc7ddadea6743be5c81) +++ tests/info-method.tcl (.../info-method.tcl) (revision fdab3b9e05d21cb92835b9128193c7ba329d583d) @@ -324,11 +324,11 @@ {::C public method {bar baz y} {x:int y:upper} {return y}} ? {nx::Object info method parameter "info lookup methods"} \ - "-callprotection -expand -incontext -methodtype -nomixins -source pattern:optional" + "-callprotection -incontext -methodtype -nomixins -path -source pattern:optional" ? {o info method parameter "foo b"} "x:int y:upper" ? {nx::Object info method parameter ::nx::Object::slot::__info::lookup::methods} \ - "-callprotection -expand -incontext -methodtype -nomixins -source pattern:optional" + "-callprotection -incontext -methodtype -nomixins -path -source pattern:optional" ? {o info method parameter "::o::foo::b"} "x:int y:upper" ? {nx::Object info method handle "info"} "::nsf::classes::nx::Object::info" @@ -342,23 +342,23 @@ } # -# test "info methods -expand" +# test "info methods -path" # -Test case info-methods-expand { +Test case info-methods-path { # # test case on base class # ? {::nx::Object info methods "info"} "info" - ? {::nx::Object info methods -expand "info"} "" - ? {lsort [::nx::Object info methods -expand "info lookup *"]} \ + ? {::nx::Object info methods -path "info"} "" + ? {lsort [::nx::Object info methods -path "info lookup *"]} \ "{info lookup filter} {info lookup method} {info lookup methods} {info lookup slots}" - ? {lsort [::nx::Object info methods -expand "info *method*"]} \ + ? {lsort [::nx::Object info methods -path "info *method*"]} \ "{info filter methods} {info lookup method} {info lookup methods} {info method} {info methods}" ? {lsort [::nx::Object info methods "slots"]} "" ? {lsort [::nx::Object info methods "*slots*"]} "" - ? {lsort [::nx::Object info methods -expand "*slots*"]} \ + ? {lsort [::nx::Object info methods -path "*slots*"]} \ "{info lookup slots} {info slots}" - ? {lsort [::nx::Object info methods -expand "*filter*"]} \ + ? {lsort [::nx::Object info methods -path "*filter*"]} \ "filter {info filter guard} {info filter methods} {info lookup filter}" ::nx::Class create C { @@ -376,20 +376,20 @@ :public method "string compress" {s} {puts compress} :create d1 } - ? {lsort [C info methods -expand -callprotection all]} \ + ? {lsort [C info methods -path -callprotection all]} \ "{a b c} {a b d} {a c} foo {string length} {string reverse}" - ? {lsort [C info methods -expand]} \ + ? {lsort [C info methods -path]} \ "{a c} foo {string length} {string reverse}" # # lookup ensemble methods # - ? {lsort [c1 info lookup methods -expand "string *"]} \ + ? {lsort [c1 info lookup methods -path "string *"]} \ "{string length} {string reverse}" # # lookup ensemble methods combined from multiple classes # - ? {lsort [d1 info lookup methods -expand "string *"]} \ + ? {lsort [d1 info lookup methods -path "string *"]} \ "{string compress} {string length} {string reverse}" #