Artifact
fa03a8447e29e6d49e965ebf52b65bb7f6ffd2f3ccc5068b4e9c021b7e4efa09:
Attachment "namespace-class-destructor.tcl" to
ticket [6d4319309e]
added by
anonymous
2025-02-12 22:40:03.
(unpublished)
#!/usr/bin/env tclsh
package require Itcl
proc logtext { msg } {
puts "[ clock format [ clock seconds ] -format "%Y-%j-%T" ] - $msg"
}
namespace eval Shared {
itcl::class Conn {
constructor { } {
logtext " ctor(S) : $this"
}
destructor {
logtext " dtor(S) : $this"
logtext " - THIS SHOULD HAPPEN"
}
}
}
namespace eval B {
itcl::class AltConn {
inherit ::Shared::Conn
constructor { } {
logtext " ctor(A) : $this"
}
destructor {
logtext " dtor(A) : $this"
logtext " - heritage: [ info heritage ]"
}
}
itcl::class Conn {
inherit ::Shared::Conn
constructor { } {
logtext " ctor(C) : $this"
}
destructor {
logtext " dtor(C) : $this"
logtext " - heritage: [ info heritage ]"
}
}
}
logtext "----- Expected Behavior -----"
logtext "creating A"
set a [ ::B::AltConn \#auto ]
logtext "deleting $a"
itcl::delete object $a
logtext "----- Bad Behavior -----"
logtext "creating C"
set c [ ::B::Conn \#auto ]
logtext "deleting $c"
itcl::delete object $c