Hello Gustaf,
what is the recommended way to work around the warning that is put out by code like this:
nx::Class create Test { :property value:required }
set value "-h" Test new -value $value # => Warning: value '-h' of parameter '-expected' could be a non-positional argument during: # ::nsf::__#0l configure -expected -h
Kind regards, Arthur
Some background: if one has a code like
set value -v Test new -value $value
even the tcl extension developer has no means to distinguish between a variable containing a value and constant like:
Test new -value -v
in practice, statements like the one above are c common source of problem, so nsf spits out in the case of a fully unknown argument the warning you mentioned. So, getting the warning is a feature, not a bug :)
The simplest way to get rid of the message is to turn of debug. by default, the debug level of nsf is 1, setting it to 0 will remove these messages
nsf::configure debug 0 Test new -value -v
This will of course get rid of all warnings (we had no warnings in XOTcl 1.*).
An alternative option is to provide a value type for the property, such as e.g. integer, object, ... which are for your example most probable not suitable types. However, nsf contains predefined support for all value types definable by "string is ...", or one can use application specific value checkers; so we can get rid of the message by saying that the permissible values must be e.g. printable. Setting a different value type helps because the default value-checker (for unspecified values) spits out the warning.
# turn debug on again nsf::configure debug 1
# define the property to accept printable values nx::Class create Test { :property value:required,print }
Test new -value -v
Hope this helps and explains things...
-gustaf neumann
Am 21.06.12 10:22, schrieb Arthur Schreiber:
Hello Gustaf,
what is the recommended way to work around the warning that is put out by code like this:
nx::Class create Test { :property value:required }
set value "-h" Test new -value $value # => Warning: value '-h' of parameter '-expected' could be a non-positional argument during: # ::nsf::__#0l configure -expected -h
Kind regards, Arthur