Index: tests/varresolutiontest.xotcl =================================================================== diff -u -r4cc0fdfb65a5ef8d28eb623084910447849edd7f -r5ab730ebd0e769e5f376cc2db8aa22b024a9c498 --- tests/varresolutiontest.xotcl (.../varresolutiontest.xotcl) (revision 4cc0fdfb65a5ef8d28eb623084910447849edd7f) +++ tests/varresolutiontest.xotcl (.../varresolutiontest.xotcl) (revision 5ab730ebd0e769e5f376cc2db8aa22b024a9c498) @@ -105,4 +105,30 @@ ? {o array exists a} 0 ? {namespace eval ::o array exists a} 0 +o destroy + +########################################### +# tests on namespace-qualified var names +########################################### + +Object o -requireNamespace +Object o::oo -requireNamespace + +? {::o set ::x 1} 1 +? {info exists ::x} [set ::x] +? {catch {unset ::x}} 0 1 + +? {::o set ::o::x 1} 1 +? {o exists x} [::o set ::o::x] +? {namespace eval ::o unset x} "" 1 +? {o exists x} 0 + +# Note, relatively qualified var names (not prefixed with ::*) +# are always resolved relative to the per-object namespace +? {catch {::o set o::x 1} msg} 1 +? {::o set oo::x 1} 1 +? {o::oo exists x} [::o set oo::x] +? {o unset oo::x} "" 1 +? {o::oo exists x} 0 + o destroy \ No newline at end of file