Tcl Source Code

View Ticket
Login
Ticket UUID: 46450b464ea031daeb6a419eb64ce1ab848dd6ca
Title: A namespace loses track of itself
Type: Bug Created on: 2017-06-02 11:21:14
Submitter: pooryorick Assigned to: nobody
Subsystem: 21. [namespace] Severity: Minor
Priority: 5 Medium Last modified: 2017-06-02 12:16:48
Status: Open Closed by: nobody
Resolution: None Closed on:
Version: 8.7
Description:

namespace eval ns1 {
	namespace delete [namespace current]
	namespace eval [namespace current] {}
	namespace eval doc {}
	set doc::var1 val1
	::apply [list {} {
		puts $doc::var1 ;# -> can't read "$doc::var1": no such variable
	} [namespace current]]
}

And here is an example where two variables, both having the name $ns1::doc::var1 print their different values:

namespace eval ns1 {
	namespace delete [namespace current]
	namespace eval [namespace current] {}
	namespace eval doc {}
	set doc::var1 val1
	::apply [list {} {
		namespace eval doc {}
		set doc::var1 val2
		puts $doc::var1
	} [namespace current]]
	puts $doc::var1
}