Apply patch #3248280 which adds better error messages when the incorrect number or type of arguments are passed to overloaded methods.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12564 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
60a1c5eed3
commit
24d695a7a1
2 changed files with 15 additions and 1 deletions
|
|
@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
|
||||||
Version 2.0.3 (in progress)
|
Version 2.0.3 (in progress)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
2011-03-29: wsfulton
|
||||||
|
[Tcl] Apply patch #3248280 from Christian Delbaere which adds better error messages when
|
||||||
|
the incorrect number or type of arguments are passed to overloaded methods.
|
||||||
|
|
||||||
2011-03-29: wsfulton
|
2011-03-29: wsfulton
|
||||||
[Tcl] Apply patch #3224663 from Christian Delbaere.
|
[Tcl] Apply patch #3224663 from Christian Delbaere.
|
||||||
1. Fix when function returns a NULL value, a "NULL" command will be created in the Tcl interpreter
|
1. Fix when function returns a NULL value, a "NULL" command will be created in the Tcl interpreter
|
||||||
|
|
|
||||||
|
|
@ -531,7 +531,17 @@ public:
|
||||||
Printf(df->code, "Tcl_Obj *CONST *argv = objv+1;\n");
|
Printf(df->code, "Tcl_Obj *CONST *argv = objv+1;\n");
|
||||||
Printf(df->code, "int argc = objc-1;\n");
|
Printf(df->code, "int argc = objc-1;\n");
|
||||||
Printv(df->code, dispatch, "\n", NIL);
|
Printv(df->code, dispatch, "\n", NIL);
|
||||||
Printf(df->code, "Tcl_SetResult(interp,(char *) \"No matching function for overloaded '%s'\", TCL_STATIC);\n", iname);
|
Node *sibl = n;
|
||||||
|
while (Getattr(sibl, "sym:previousSibling"))
|
||||||
|
sibl = Getattr(sibl, "sym:previousSibling"); // go all the way up
|
||||||
|
String *protoTypes = NewString("");
|
||||||
|
do {
|
||||||
|
Printf(protoTypes, "\n\" %s(%s)\\n\"", SwigType_str(Getattr(sibl, "name"), 0), ParmList_protostr(Getattr(sibl, "wrap:parms")));
|
||||||
|
} while ((sibl = Getattr(sibl, "sym:nextSibling")));
|
||||||
|
Printf(df->code, "Tcl_SetResult(interp,(char *) "
|
||||||
|
"\"Wrong number or type of arguments for overloaded function '%s'.\\n\""
|
||||||
|
"\n\" Possible C/C++ prototypes are:\\n\"%s, TCL_STATIC);\n", iname, protoTypes);
|
||||||
|
Delete(protoTypes);
|
||||||
Printf(df->code, "return TCL_ERROR;\n");
|
Printf(df->code, "return TCL_ERROR;\n");
|
||||||
Printv(df->code, "}\n", NIL);
|
Printv(df->code, "}\n", NIL);
|
||||||
Wrapper_print(df, f_wrappers);
|
Wrapper_print(df, f_wrappers);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue