Index: generic/nsf.c =================================================================== diff -u -r5a34df6ef70a354e29438bc9a7c553c0fb8b9677 -r54277a59a45fb6f055637b9a0e14a2fefd31f7eb --- generic/nsf.c (.../nsf.c) (revision 5a34df6ef70a354e29438bc9a7c553c0fb8b9677) +++ generic/nsf.c (.../nsf.c) (revision 54277a59a45fb6f055637b9a0e14a2fefd31f7eb) @@ -26054,7 +26054,8 @@ int result, objc; result = ParamDefsParse(interp, NsfGlobalObjs[NSF_PARSE_ARGS], argspecObj, - NSF_DISALLOWED_ARG_METHOD_PARAMETER, 0, + NSF_DISALLOWED_ARG_METHOD_PARAMETER, 1 /* force use of param structure, + even for Tcl-only params */, &parsedParam); if (unlikely(result != TCL_OK)) { Index: tests/parameters.test =================================================================== diff -u -rdc801eacd9d3d6f63b53830aef0fec2e0b71134c -r54277a59a45fb6f055637b9a0e14a2fefd31f7eb --- tests/parameters.test (.../parameters.test) (revision dc801eacd9d3d6f63b53830aef0fec2e0b71134c) +++ tests/parameters.test (.../parameters.test) (revision 54277a59a45fb6f055637b9a0e14a2fefd31f7eb) @@ -3367,6 +3367,10 @@ ? {set bar} 2 ? {set baz} hi + + ? {apply {{} {nsf::parseargs a 1; info exists a}}} "1" + ? {apply {{} {nsf::parseargs {a b} {1 2}; expr {[info exists a]+[info exists b]}}}} "2" + ? {apply {{} {nsf::parseargs {a b args} {1 2 3 4}; expr {[info exists a]+[info exists b]+[info exists args]}}}} "3" } #