Index: generic/xotcl.c =================================================================== diff -u -rd34c425b8c87ad62b8879114f4aa8454162f09ed -rc09536ecf46b5a272a87a42a7deb59b852df5ec8 --- generic/xotcl.c (.../xotcl.c) (revision d34c425b8c87ad62b8879114f4aa8454162f09ed) +++ generic/xotcl.c (.../xotcl.c) (revision c09536ecf46b5a272a87a42a7deb59b852df5ec8) @@ -9657,18 +9657,22 @@ Tcl_SetObjResult(interp, resultObj); return TCL_OK; } - + case InfomethodsubcmdArgsIdx: + { + Tcl_Command importedCmd = GetOriginalCommand(cmd); + return ListCmdParams(interp, importedCmd, methodName, 1); + } case InfomethodsubcmdParameterIdx: { Tcl_Command importedCmd = GetOriginalCommand(cmd); return ListCmdParams(interp, importedCmd, methodName, 0); } } - /* - * Subcommands different per type of method. converter in + * Subcommands different per type of method. The Converter in * InfoMethods defines the types: - * "all|scripted|system|alias|forwarder|object|setter" + * + * "all|scripted|system|alias|forwarder|object|setter" */ if (GetTclProcFromCommand(cmd)) { /* a scripted method */ @@ -12636,25 +12640,24 @@ } static int XOTclObjInfoMethodMethod(Tcl_Interp *interp, XOTclObject *object, - int subcmd, - char *methodName) { + int subcmd, char *methodName) { Tcl_Namespace *nsPtr = object->nsPtr; return ListMethod(interp, object, methodName, nsPtr ? FindMethod(nsPtr, methodName) : NULL, subcmd, 1); } static int XOTclClassInfoMethodMethod(Tcl_Interp *interp, XOTclClass *class, - int subcmd, - char *methodName) { + int subcmd, char *methodName) { Tcl_Namespace *nsPtr = class->nsPtr; return ListMethod(interp, &class->object, methodName, nsPtr ? FindMethod(nsPtr, methodName) : NULL, subcmd, 0); } -static int XOTclObjInfoMixinMethod(Tcl_Interp *interp, XOTclObject *object, int withGuards, int withOrder, - char *patternString, XOTclObject *patternObj) { +static int XOTclObjInfoMixinMethod(Tcl_Interp *interp, XOTclObject *object, + int withGuards, int withOrder, + char *patternString, XOTclObject *patternObj) { if (withOrder) { if (!(object->flags & XOTCL_MIXIN_ORDER_VALID)) @@ -12669,12 +12672,6 @@ return object->opt ? GuardList(interp, object->opt->mixins, mixin) : TCL_OK; } -static int XOTclObjInfoParamsMethod(Tcl_Interp *interp, XOTclObject *object, char *methodName, int withVarnames) { - return ListCmdParams(interp, - object->nsPtr ? FindMethod(object->nsPtr, methodName) : NULL, - methodName, withVarnames); -} - static int XOTclObjInfoParentMethod(Tcl_Interp *interp, XOTclObject *object) { if (object->id) { Tcl_SetResult(interp, NSCmdFullName(object->id), TCL_VOLATILE); @@ -12899,10 +12896,6 @@ return TCL_OK; } -static int XOTclClassInfoInstparamsMethod(Tcl_Interp *interp, XOTclClass *class, char *methodName, int withVarnames) { - return ListCmdParams(interp, FindMethod(class->nsPtr, methodName), methodName, withVarnames); -} - static int XOTclClassInfoInstpostMethod(Tcl_Interp *interp, XOTclClass * class, char * methodName) { if (class->opt) { XOTclProcAssertion *procs = AssertionFindProcs(class->opt->assertions, methodName);