[Xotcl] Workaround for "value of parameter could be non-positional argument"

Gustaf Neumann neumann at wu.ac.at
Thu Jun 21 16:01:14 CEST 2012


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
>

-- 
Univ.Prof. Dr. Gustaf Neumann
Institute of Information Systems and New Media
WU Vienna
Augasse 2-6, A-1090 Vienna, AUSTRIA



More information about the Xotcl mailing list